4

SQL タスクの実行項目があり、ストアド プロシージャから複数行のデータを取得しています。

変数テーブルの下で変数を宣言しObjShipment、結果セットの下に次の情報を割り当てました。

Result Set:    Full result set
Result Name:   0
Variable Name: User::ObjShipment

ObjShipment 変数を ReadOnly に割り当ててスクリプト タスクを作成しましたが、その中のデータを取得する方法を知りたいですか?

ストアド プロシージャは のような複数の行を返しますId, ItemId, DateCreated..が、ItemId だけに関心がある場合、それらを取得するにはどうすればよいですか? また、複数の行が返されるため、複数の ItemId が存在する可能性があります。

私はssisが初めてで、どんな助けもいただければ幸いです!

4

1 に答える 1

7

したがって、一般的に言えば、SSIS パッケージ内のオブジェクト変数を For Each コンテナーの列挙子として使用します。

  1. For Each ループ コンテナーを作成します。
  2. Enumerator を「For Each ADO Enumerator」に設定します。
  3. ソース変数を User::ObjShipment に設定します。
  4. [変数マッピング] タブで、オブジェクトの各列を独自の変数に割り当てます。
  5. For Each ループ コンテナー内では、これらの変数を使用して、データベースに挿入したり、ルックアップや監査を行ったりするなど、必要なことを何でも実行できます。

スクリプト タスクを使用する場合は、次のことを行う必要があります。

DataTable dt = new DataTable();
OleDbDataAdapter oleDa = new OleDbDataAdapter();
oleDa.Fill(dt, Dts.Variables["User::objShipment"].Value);

そして、古い DataTable のように dt を使用します。

于 2013-08-13T20:51:52.487 に答える