web-dev-qa-db-fra.com

Comment appelez-vous une procédure stockée dans SSIS?

J'essaie de créer un package SSIS qui interroge les données d'une table et appelle une procédure stockée dans une autre base de données avec chaque ligne.

Dans mon ancien package DTS, je faisais ceci:

EXEC myStoredProcedure ?, ?, ?

... puis j'ai cartographié les paramètres. Cependant, dans SSIS, je ne peux pas comprendre comment faire fonctionner cela.

J'ai une tâche de flux de données, qui exécute d'abord une requête pour les données. Il transmet les données à une destination de base de données OLE DB. J'ai défini le mode d'accès aux données sur "commande SQL", mais lorsque j'essaie de saisir le code SQL ci-dessus, j'obtiens "Nombre de paramètres non valides" lorsque il analyse le SQL. Je ne peux pas accéder à l'écran Mappages. Des idées?

20
John Bubriski

Dans le flux de données, le OLE DB Command peut être utilisé pour exécuter une instruction SQL pour chaque ligne d'un flux de données --- (documentation MSDN )

Vous pouvez également stocker le jeu de résultats source dans une variable d'objet de type de données et utiliser un Foreach Loop conteneur dans le flux de contrôle (exemple ici ).

13
Ed Harper

Vous devrez utiliser une tâche d'exécution SQL. Dans la section SQLStatement, vous pouvez ajouter le code pour exécuter la procédure stockée.

Pour passer des paramètres, utilisez le? syntaxe et spécifiez les paramètres dans la section "Parameter Mapping".

Un bon exemple peut être trouvé ici .

8
Lance Harper