web-dev-qa-db-fra.com

Erreur: 0xC0202009 à la tâche de flux de données, OLE Base de données de destination [43]: code d'erreur SSIS DTS_E_OLEDBERROR. Un OLE Une erreur de base de données s'est produite. Code d'erreur: 0x80040E21

Ma source est une source de fichier plat TXT, la destination est de type OLE DB. (voir image)

enter image description here

J'ai trouvé un très tutoriel de base sur Code Project pour créer un paquet. J'ai terminé les étapes mais lors du débogage, une erreur étrange se produit (ci-dessous):

Quelqu'un peut-il donner une explication à cette erreur? Il m'a fallu des heures pour rechercher l'erreur sur le Web.

Paquet SSIS "C:\Utilisateurs\USRNAME\Bureau\Projets\DataGeneratorSsis\DataGeneratorSsis\Package.dtsx" départ. Informations: 0x4004300A à la tâche de flux de données, SSIS.Pipeline: La phase de validation commence. Informations: 0x4004300A au flux de données Tâche, SSIS.Pipeline: la phase de validation commence. Attention: 0x80047076 à la tâche de flux de données, SSIS.Pipeline: colonne de sortie "intApplication" (7) à la sortie "Flat File Source Output" (6) et Le composant "Flat File Source" (2) n'est pas utilisé par la suite dans les données Tâche de flux. Le retrait de cette colonne de sortie non utilisée peut augmenter le flux de données l'exécution des tâches. Informations: 0x40043006 à la tâche de flux de données, SSIS.Pipeline: la phase de préparation à l'exécution commence. Information: 0x40043007 à la tâche de flux de données, SSIS.Pipeline: la phase de pré-exécution est début. Informations: 0x402090DC dans la tâche de flux de données, source de fichier à plat 2 : Le traitement du fichier "C:\Utilisateurs\USRNAME\Desktop\ddd.txt" a commencé. Informations: 0x4004300C à la tâche de flux de données, SSIS.Pipeline: La phase d'exécution commence. Informations: 0x402090DE à la tâche de flux de données, Flat File Source 2 : nombre total de lignes de données traitées pour le fichier "C:\Users\USRNAME\Desktop\ddd.txt" est 2. Erreur: 0xC0202009 au niveau des données Tâche de flux, OLE Destination de la base de données [43]: Code d'erreur SSIS DTS_E_OLEDBERROR . Une erreur de base de données OLE s'est produite. Code d'erreur: 0x80040E21. Un enregistrement de base de données OLE est disponible. Source: "Client natif Microsoft SQL Server 11.0" Hresult: 0x80040E21 Description: "Erreurs générées par l'opération de base de données À étapes multiples OLE. Vérifiez chaque valeur d'état de base de données OLE, si disponible. Aucun travail n'a été effectué.". Erreur: 0xC020901C lors de la tâche de flux de données, base de données OLE Destination [43]: une erreur est survenue avec OLE DB Destination.Inputs [Entrée de la destination OLE DB] .Columns [AppID] sur OLE DB Destination.Inputs [Entrée de la destination OLE DB]. Le statut de la colonne retourné était: "La valeur n'a pas pu être convertie en raison d'une perte potentielle de données.". Erreur: 0xC0209029 lors de la tâche de flux de données, base de données OLE Destination [43]: code d'erreur SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. "L'entrée" OLE DB Destination.Inputs [entrée de destination OLE DB] "a échoué car l'erreur code 0xC0209077 s'est produit et la disposition d'erreur de ligne sur "OLE DB Destination.Inputs [entrée de destination OLE DB]" spécifie un échec sur Erreur. Une erreur s'est produite sur l'objet spécifié du .__ spécifié. composant. Il peut y avoir des messages d'erreur postés auparavant avec plus informations sur l'échec. Erreur: 0xC0047022 à la tâche de flux de données, SSIS.Pipeline: Code d'erreur SSIS DTS_E_PROCESSINPUTFAILED. Le La méthode ProcessInput sur le composant "Destination OLE DB" (43) a échoué avec Code d'erreur 0xC0209029 lors du traitement de l'entrée "Destination OLE DB Entrée" (56). Le composant identifié a renvoyé une erreur provenant du fichier Méthode ProcessInput. L'erreur est spécifique au composant, mais le erreur est fatale et entraînera l'arrêt de la tâche de flux de données . Il peut y avoir des messages d'erreur postés auparavant avec plus d'informations à propos de l'échec. Information: 0x40043008 à la tâche de flux de données, SSIS.Pipeline: la phase de post-exécution commence. Information: 0x402090DD dans la tâche de flux de données, source de fichier à plat 2 : traitement de le fichier "C:\Users\USRNAME\Desktop\ddd.txt" est terminé. Information: 0x4004300B à la tâche de flux de données, SSIS.Pipeline: "Destination OLE DB" a écrit 0 lignes. Informations: 0x40043009 à la tâche de flux de données, SSIS.Pipeline: la phase de nettoyage commence. Échec de la tâche: tâche de flux de données Avertissement: 0x80019002 dans le package: code d'avertissement SSIS DTS_W_MAXIMUMERRORCOUNTREACHED. La méthode d'exécution a réussi, mais le nombre d'erreurs générées (4) a atteint le maximum autorisé (1); entraînant un échec. Cela se produit lorsque le nombre d'erreurs atteint le nombre spécifié dans MaximumErrorCount. Changer la MaximumErrorCount ou corrigez les erreurs. Paquet SSIS "C:\Utilisateurs\USRNAME\Bureau\Projets\DataGeneratorSsis\DataGeneratorSsis\Package.dtsx" terminé: échec.

Le message d'erreur pertinent

Une erreur est survenue avec OLE DB Destination.Inputs [Entrée de destination OLE DB] .Columns [AppID] sur OLE Destination de base de données DB.Inputs [Entrée de destination OLE DB]. L'état de la colonne renvoyé était: "La valeur n'a pas pu être convertie en raison d'une perte potentielle de données."

5
SamekaTV

Cette erreur se produit donc parce que votre source contient pour la colonne AppID une valeur non valide pour votre colonne AppID dans la destination.

Quelques exemples possibles:

  • Vous essayez d'insérer une valeur de 10 caractères dans un champ de 8 caractères.
  • Vous essayez d'insérer une valeur supérieure à 127 dans un champ tinyint.
  • Vous essayez d'insérer la valeur 6.4578 dans un champ décimal (5,1).

SSIS est régi par des métadonnées et il suppose que vous avez configuré vos entrées et vos sorties de manière à ce que les valeurs acceptables pour les deux soient dans la même plage.

8
Kyle Hale

Cela est généralement dû à une troncature (la valeur entrante est trop grande pour tenir dans la colonne de destination). Malheureusement, SSIS ne vous dira pas le nom de la colonne incriminée. J'utilise un composant tiers pour obtenir ces informations: http://naseermuhammed.wordpress.com/tips-tricks/getting-error-column-name-in-ssis/

1
Steve Jones

Erreur jet 4 oledb Il peut être possible mise à niveau kb4041678 kb4041681

Il est également possible de recevoir cette erreur d'un composant de sélection si la requête échoue de manière inhabituelle (par exemple: une sous-requête renvoie plusieurs lignes dans une connexion Oracle oledb).

0
Andrew Hill

Dans mon cas, le compte système sous-jacent à travers lequel le package était exécuté était verrouillé. Une fois que le compte système a été déverrouillé et que le package a été réexécuté, il a été exécuté avec succès. Le développeur a déclaré qu'il avait appris l'existence de ce problème lors du débogage et avait directement tenté de se connecter au serveur et de vérifier l'état de la connexion.

0
Vishal Kapoor