1

一日中これに取り組んでいて、私は夢中になっています。私はSSIS(通常はC#プログラマー)を初めて使用するため、期待どおりに機能しません:)

(tl;dr - ADO ForEach Enumerator を使用して、行全体を変数として内部のデータ タスク (スクリプト コンポーネントを保持する) に渡すにはどうすればよいですか?)

シナリオ: データ タスクで CDC スプリッター コンポーネントを使用して、データベース内の CDC テーブルから INSERTS、UPDATES、および DELETES を取得および分割しています。各変更を、レコードセットであるパッケージ レベルのオブジェクト変数に割り当てます。

提供された文字列データの条件を確認したい INSERTS オブジェクト変数だけを取得し、それが真の場合は、変更を誰かに電子メールで送信したいと考えています。

これを実現するために、表面に ForEach コンテナーをドロップし、それを INSERTS オブジェクト変数に接続しました。次に、そのコンテナー内にデータ フロー タスクをドロップし、そのデータ フロー タスク内にスクリプト コンポーネントをドロップしました。

現在の行で何らかの条件が満たされた場合、その行はスクリプト コンポーネントの出力バッファに追加されます。私を悩ませているのは、これを達成する唯一の方法は、行の各列を ForEach ループ変数コレクションにマップすることであると思われることです。私が見たすべての例は、インデックス 0 などから始まる変数がマップされていることを示しています。しかし、私の行には多くの列があり、すべての列に変数を作成したくないので、このようにするのは間違っているようです。

問題は.. ADO Enumerator ForEach コンテナ内で、現在の行 (すべての列) を内部のデータ タスク (およびデータ タスク内のスクリプト タスク) に渡すにはどうすればよいですか?

アドバイスをありがとう...

4

0 に答える 0