2010-05-19 8 views
0

Je suis nouveau sur ce forum. Je me suis rendu fou en essayant de trouver la réponse à mon problème. J'ai créé du code TSQL qui exécute du code SQL dynamique dans un curseur dans un proc stocké. Le curseur extrait certaines données de la table x, construit une requête basée sur des données récupérées dans la table x, exécute la requête et renvoie des données. Fonctionne comme un charme. Lorsque j'ajoute un 'insert into table' pour capturer les résultats, j'obtiens une erreur: NOTE: seules les erreurs SQL 2000 s'exécutent correctement sur SQL 2008. L'opération n'a pas pu être effectuée car le fournisseur OLE DB 'MSDAORA' n'a pas pu commencer une transaction distribuée. La trace d'erreur OLE DB [fournisseur OLE/DB 'MSDAORA' ITransactionJoin :: JoinTransaction a renvoyé 0x8004d01b].TSQL SQL 2000 stocké proc curseur

+1

Utilisez-vous SQL Server? MSDAORA est le fournisseur Oracle. Il serait utile si vous montrez le SQL qui cause le problème. –

+0

Je frémis à la pensée d'un curseur et d'une transaction distribuée et SQl dynamique tout en une requête. Il doit y avoir une meilleure façon de faire cela. Le traitement ligne par ligne est mauvais, vous voulez travailler avec des ensembles de données. – HLGEM

Répondre

0

Vous ne devriez pas utiliser un curseur pour cela. Ma conjecture serait un conflit avec le curseur et l'insertion dans la table.

Veuillez écrire le code et le problème que vous voulez résoudre afin que nous puissions vous aider à l'écrire correctement.

Questions connexes