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

时间:2013-08-13 20:17:58

标签: c# ssis

我有一个执行sql任务项,它从存储过程中获取多行数据。

在变量表下声明了一个变量ObjShipment,并在结果集下将其分配给以下信息:

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

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

存储过程返回多行,如Id, ItemId, DateCreated..,但如果我只对ItemId感兴趣,如何检索它们呢?并且因为它返回多行,所以可能有多个ItemId。

我是ssis的新人,任何帮助都会受到赞赏!

1 个答案:

答案 0 :(得分:7)

所以一般来说,你在SSIS包中使用Object变量作为For Each容器的Enumerator。

  1. 创建For Each循环容器。
  2. 将枚举器设置为“For Each ADO Enumerator”。
  3. 将源变量设置为User :: ObjShipment。
  4. 在“变量映射”选项卡中将对象中的每一列分配给自己的变量。
  5. 在For Each循环容器中,使用这些变量执行任何操作:将它们插入数据库,执行查找和审核等。
  6. 如果您打算使用脚本任务,那么您需要做的就是

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

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