SSISパッケージの結果セットを「フラット化」する必要があります。つまり、複数の行で構成される結果セットを取得し、値が連結された単一の文字列を生成します。
結果セットは、さまざまな理由で変更できないストアドプロシージャを介して返されます。ロジックを別のストアドプロシージャに複製したくないので、ストアドプロシージャの結果から始めて、そこから作業する必要があるという制限があります。
現在、ADO.NET接続で「SQL実行タスク」を使用してストアドプロシージャを実行し、結果をObject型のSSIS変数に返しています。
私の現在の考え(グーグルなどから)は、次のようなものを使用して、「スクリプトタスクの実行」を使用することです。
Dim flattened As New StringBuilder()
Dim adapter As New OleDbDataAdapter
Dim dt As New DataTable
Dim row As DataRow
adapter.Fill(dt, Dts.Variables("DataSet").Value)
For Each row In dt.Rows
flattened.Append(row("Column").ToString)
flattened.Append(DELIMETER)
Next
Return flattened.ToString
上記の例では、現在、「オブジェクトはADODB.RecordSetまたはADODB.Recordではありません」というエラーが返されます。この問題を解決するために、上記のさまざまなバリエーションを試しましたが、環境でのデバッグに対するフラストレーションが壁にぶつかるところまで来ました。
どんな考えでも大歓迎です!ありがとう