J'obtiens l'erreur suivante lorsque j'essaie d'exécuter mon package. Je suis nouveau chez ssis. Aucune suggestion. Tahnks
===================================
Erreur de validation de package (erreur de validation de package)
===================================
Erreur lors de la tâche de flux de données [SSIS.Pipeline]: "OLE DB Source" a échoué la validation et a renvoyé l'état de validation "VS_NEEDSNEWMETADATA".
Erreur lors de la tâche de flux de données [SSIS.Pipeline]: un ou plusieurs composants ont échoué à la validation.
Erreur lors de la tâche de flux de données: des erreurs se sont produites lors de la validation de la tâche.
(Microsoft.DataTransformationServices.VsIntegration)
Lieu du programme:
à Microsoft.DataTransformationServices.Project.DataTransformationsPackageDebugger.ValidateAndRunDebugger (drapeaux Int32, IOutputWindow outputWindow, options de DataTransformationsProjectConfigurationOptions) à Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage (Int32 launchOptions, ProjectItem startupProjItem, DataTransformationsProjectConfigurationOptions options) à Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchActivePackage (Int32 launchOptions) sur Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage (Int32 launchOptions, DataTransformationsProjectConfigurationOptions options) sur Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.Launch (Int32 launchOptions, DataTransformationsProjectCptions)
VS_NEEDSNEWMETADATA apparaît lorsque les données sous-jacentes derrière l'une des tâches changent. La solution la plus rapide sera probablement de simplement supprimer et recréer chaque élément qui génère une erreur.
Que diriez-vous de désactiver les contrôles de validation?
Comme si vous faites un clic droit sur le composant source ou de destination et sélectionnez les propriétés, vous aurez la propriété nommée validateExternalMetadata mise sur false et essayez.
Cette solution fonctionne pour moi.
Cela se produit normalement s'il y a eu une modification de votre schéma, pour ne pas stresser, double-cliquez simplement sur vos entrées et sorties et cela devrait se résoudre
Assurez-vous que votre connexion est valide. Si vous utilisez des connexions dynamiques, essayez de définir l'option "délai de validation" = true sur le package ou le flux de données.
Dans mon cas, la structure de la table de destination ne correspondait pas aux métadonnées du composant OLEDB. J'ai ajouté la colonne manquante que j'ai oublié d'ajouter et après cela, elle a été corrigée.
Après avoir fait quelques recherches (vérifiez pour extraire vos propres conclusions: this et this ), je pense avoir trouvé une solution de contournement de Nice lorsque le problème avec les métadonnées provient d'un Ole DB
objet, mais uniquement pour un cas très spécifique .
Le fait est que lorsque vous changez vos colonnes noms/supprimez des colonnes/ajoutez des colonnes, vous ne pouvez rien faire d'autre que mettre à jour les métadonnées.
Cependant, si vous utilisez un SQL query
pour récupérer les données de l'objet, dans le cas que vous n'avez pas besoin de mettre à jour la requête elle-même, vous n'aurez pas besoin de mettre à jour les métadonnées si la requête peut toujours demander ce qu'elle veut . Fondamentalement, si la requête est toujours valide.
Je l'ai essayé dans mon propre ETL et j'ai changé un Ole DB
objet qui lisait les données d'un fichier Excel
, ciblant un sheet
et ensuite j'avais toutes les colonnes sélectionnées dans l'onglet.
Le changer pour un SQL query
pour récupérer la feuille complète comme:
SELECT * FROM ['Sheet_Name$']
Résolu complètement le cas pour moi, même en introduisant des fichiers avec différentes métadonnées dans les en-têtes.