SSIS正在获取执行Sql任务结果集对象

本文关键字:任务 结果 对象 Sql 执行 获取 SSIS | 更新日期: 2023-09-27 18:27:37

我有一个execute sql任务项,它从存储的proc中获取多行数据。

在变量表下声明了一个变量ObjShipment,并将其分配给具有以下信息的Result集:

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

我已经编写了一个将ObjShipment变量分配给ReadOnly的脚本任务,我想知道如何检索其中的数据?

存储的proc返回多行,如Id, ItemId, DateCreated..,但如果我只对ItemId感兴趣,我该如何检索它们?由于它返回多行,因此可能有多个ItemId。

我是ssis的新手,如有任何帮助,不胜感激!

SSIS正在获取执行Sql任务结果集对象

因此,一般来说,您使用SSIS包中的对象变量作为For Each容器的枚举器。

  1. 创建For Each循环容器
  2. 将枚举器设置为"For Each ADO Enumerator"
  3. 将源变量设置为"用户::ObjShipment"
  4. 在"变量映射"选项卡中将对象中的每一列分配给其自己的变量
  5. 在For Each Loop容器中,使用这些变量执行任何您想要的操作:将它们插入数据库、执行查找和审核等

如果你要使用脚本任务,那么你需要做的就是

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

然后像使用任何旧的DataTable一样使用dt。