我有一个执行 sql 任务项,它从存储过程中获取多行数据。
在变量表下声明了一个变量ObjShipment
,并在结果集下赋值给它,信息如下:
Result Set: Full result set
Result Name: 0
Variable Name: User::ObjShipment
我编写了一个脚本任务,并将 ObjShipment 变量分配给 ReadOnly,我想知道如何检索其中的数据?
存储过程返回多行,例如 Id、ItemId、DateCreated..
,但是如果我只对 ItemId 感兴趣,我该如何检索它们呢?由于它返回多行,因此可能有多个 ItemId。
我是 ssis 的新手,如有任何帮助,我们将不胜感激!
最佳答案
所以一般来说,您在 SSIS 包中使用对象变量作为 For Each 容器的枚举器。
- 为每个循环容器创建一个。
- 将枚举器设置为“针对每个 ADO 枚举器”。
- 将源变量设置为 User::ObjShipment。
- 在“变量映射”选项卡中将对象的每一列分配给它自己的变量。
- 在 For Each 循环容器中,使用这些变量做任何您想做的事情:将它们插入数据库、进行查找和审计等。
如果你打算使用脚本任务,那么你需要做的就是
DataTable dt = new DataTable();
OleDbDataAdapter oleDa = new OleDbDataAdapter();
oleDa.Fill(dt, Dts.Variables["User::objShipment"].Value);
然后像使用任何旧 DataTable 一样使用 dt。
关于c# - SSIS获取Execute Sql Task结果集对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18218451/