我需要在 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。” 我已经尝试了上述多种不同的变体来尝试解决这个问题,但已经达到了我在环境中调试时遇到的挫败感。
任何想法将不胜感激!谢谢