Comment puis-je corriger les erreurs de fonctionnement OLE DB en plusieurs étapes dans les SIU?

j'essaie de faire un paquet DTS pour transférer des données entre deux bases de données sur le même serveur et j'obtiens les erreurs suivantes. Iv lire que L'erreur multi-étapes OLE DB opération générée peut se produire lorsque vous transférez entre différents types de base de données et il ya une perte de précision, mais ce n'est pas le cas ici. Comment puis-je examiner les métadonnées de la colonne?

erreur: 0xC0202009 à la tâche de flux de données, piTech [183]: une erreur OLE DB a produire. Erreur code: 0x80040E21. Un OLE DB record est disponible. Source: "Microsoft SQL Native Client" Hresult: 0x80040e21 Description: "Opération OLE DB en plusieurs étapes généré des erreurs. Vérifier chaque OLE DB valeur d'état, si disponible. Pas de travail a été fait.".

erreur: 0xC0202025 à la tâche de flux de données, piTech [183]: ne peut pas créer un OLE DB accesseur. Vérifier que la colonne métadonnées est valide.

erreur: 0xC004701A à la tâche de flux de données, DTS.Pipeline: composant "piTech" (183) échec de la phase de pré-exécution et code d'erreur retourné 0xC0202025.

21
demandé sur Dan 2008-09-09 14:58:57

10 réponses

regardez les propriétés des champs (type, Longueur, valeur par défaut, etc.), ils devraient être les mêmes.

J'ai eu ce problème avec SQL Server 2008 R2 parce que la longueur des champs n'est pas égale.

35
répondu Anis Hawali 2011-10-01 11:02:02

cette erreur est fréquente lorsque la table source contient une colonne de texte et que la cible est autre chose qu'une colonne de texte. Il peut être un vrai moment de mangeur si vous n'avez pas rencontré (ou oublié!) cela avant.

convertissez la colonne de texte en chaîne et définissez la condition d'erreur sur la troncature à ignorer. cela servira habituellement de solution pour cette erreur.

9
répondu Oliphant 2012-10-22 17:45:44

cette requête devrait identifier les colonnes qui sont des problèmes potentiels...

SELECT * 
FROM [source].INFORMATION_SCHEMA.COLUMNS src
    INNER JOIN [dest].INFORMATION_SCHEMA.COLUMNS dst 
        ON dst.COLUMN_NAME = src.COLUMN_NAME
WHERE dst.CHARACTER_MAXIMUM_LENGTH < src.CHARACTER_MAXIMUM_LENGTH 
3
répondu Michael Prewecki 2010-11-11 00:18:23

Ce problème sera principalement en raison de lignes vides à la fin du fichier, supprimer et exécuter le travail.

2
répondu jagadish ganaparthi 2017-08-04 10:47:39

Vous pouvez utiliser SELECT * FROM INFORMATION_SCHEMA.COLUMNS mais je soupçonne que vous avez créé la base de données de destination à partir d'un script de la base de données source de sorte qu'il est très probable que les colonnes seront les mêmes.

certaines comparaisons pourraient apporter quelque chose.

Ces sortes d'erreurs proviennent parfois d'essayer d'insérer trop de données dans des colonnes varchar trop.

0
répondu Michael Prewecki 2010-11-11 00:18:42

j'ai eu un problème similaire quand je transférais des données d'une ancienne base de données à une nouvelle base de données, j'ai eu l'erreur ci-dessus. J'ai ensuite exécuté le script suivant

SELECT * FROM [source].INFORMATION_SCHEMA.COLUMNS src INNER JOIN [dest].INFORMATION_SCHEMA.COLUMNS dst ON dst.COLUMN_NAME = src.COLUMN_NAME WHERE dst.CHARACTER_MAXIMUM_LENGTH < src.CHARACTER_MAXIMUM_LENGTH

et j'ai trouvé que mes colonnes étaient légèrement différentes en termes de taille des caractères, etc. J'ai alors essayé de modifier la table à la nouvelle structure de table qui n'a pas fonctionné. J'ai ensuite transféré Les données de l'ancienne base de données dans Excel et importé les données d'excel à la nouvelle base de données qui a fonctionné à 100%.

0
répondu DON 2011-07-26 15:33:25

vérifiez aussi si le script n'a pas de commandes de séparation par lots (supprimez les instructions " GO " sur une seule ligne).

0
répondu Jean-Pierre de Jong 2017-06-16 12:04:38

'-2147217887' message 'IDispatch error #3105' source 'Microsoft OLE DB Service Components' description 'Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.'."

c'est Ce que j'ai aussi été confronté. Le problème vient du fait que j'ai changé mon SQLOLEDB.1 provider to SQLNCLI11 sans mentionnant le mode de compatibilité dans la chaîne de connexion. Lorsque j'ai mis ce DataTypeCompatibility=80; dans la chaîne de connexion, j'ai le problème résolu.

0
répondu Herve Mutombo 2017-06-21 09:11:46

cette erreur se produit aussi quand on essaie de faire un insert et qu'un champ est codé et non nul et que nulls essaie d'être inséré.

-1
répondu polrbar5 2013-07-25 20:32:21

j'ai cette erreur lorsque le transfert d'un fichier csv pour mssql J'ai converti les colonnes en DT_NTEXT et quelques colonnes sur mssql où défini à nvarchar(255).

les définir à nvarchar (max)résolu.

-1
répondu normalo 2015-11-07 00:11:07