4

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

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

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

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

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

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

4

1 回答 1

7

所以一般来说,您使用 SSIS 包中的 Object 变量作为 For Each 容器的枚举器。

  1. 为每个循环容器创建一个。
  2. 将 Enumerator 设置为“For Each ADO Enumerator”。
  3. 将源变量设置为 User::ObjShipment。
  4. 在“变量映射”选项卡中将对象中的每一列分配给它自己的变量。
  5. 在 For Each Loop 容器中,使用这些变量来做任何你想做的事情:将它们插入数据库、进行查找和审计等。

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

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

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

于 2013-08-13T20:51:52.487 回答