0

我有一个简单的工作,它获取员工 ID 并将它们发送到 API 调用,该调用一次只接受一个员工 ID。我使用ForEach Loop ContainerExecute SQL Task.

作业按预期运行,但它只循环前 N 条记录。

我的执行 SQL 任务将完整的结果集返回给变量。我的变量设置为对象数据类型。 执行 SQL 任务

执行 SQL 任务完整结果集变量

我将 ForEach 循环设置为Foreach ADO Enumerator,然后与我的变量匹配。

Foreach 循环编辑器

当我运行作业时,我没有收到特定的错误消息告诉我我做错了什么,但它在 ForEach 循环中失败,如图所示 ForEachLoop

还有什么我可以注意的吗?

4

1 回答 1

1

执行 SQL 任务需要将结果推送到对象类型的 SSIS 变量中。我假设associateOID是字符串类型,是吗?

您需要做的是创建一个名为rsEmployeesObject 类型的 SSIS 变量。然后,您在 Execute SQL Task 中的 ResultSet 将映射到User::rsEmployees

更改 Foreach 循环 ADO 枚举器以使用该变量User::rsEmployees

此时,包将执行并将结果存储到我们的 rsEmployees 变量中,然后 Foreach 枚举器将遍历我们集中的记录。最后一块是对当前行做一些事情。这就是你User::associateOID发挥作用的地方。

在 Foreach 枚举器的变量映射选项卡中,将 User::associateOID 添加到序号 0。这将提供在枚举器中被分解的“当前行”与我们的 SSIS 变量之间的链接

于 2020-12-03T17:38:19.597 回答