テーブルからデータをクエリし、各行で別のデータベースのストアドプロシージャを呼び出すSSISパッケージを作成しようとしています。
私の古いDTSパッケージでは、これをやっていた:
EXEC myStoredProcedure ?, ?, ?
...そしてパラメータをマッピングしました。ただし、SSISでは、この機能を実現する方法がわかりません。
最初にデータのクエリを実行するデータフロータスクがあります。データをOLE DB Destinationに渡します。データアクセスモードを「SQLコマンド」に設定しますが、上記のSQLを入力しようとすると、「Invalid Parameter Count」が取得されます。 SQLを解析します。[マッピング]画面にアクセスできません。
データフローでは、OLE DB Command
を使用して、データフローの各行に対してSQLステートメントを実行できます ----(MSDN documentation )
または、ソース結果セットをデータ型オブジェクトの変数に保存し、Foreach Loop
制御フロー内のコンテナー(例 here )。
SQL実行タスクを使用する必要があります。 SQLStatementセクションで、ストアドプロシージャを実行するコードを追加できます。
パラメーターを渡すには、?を使用します「パラメータマッピング」セクションでパラメータを構文および指定します。
良い例を見つけることができます here 。