SSIS ForEach 循环容器只处理一行

SSIS ForEach Loop Container only processing one row

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

馈送的 ForEach Loop Container 进行此设置

作业 运行 符合预期,但它只是循环访问前 N 条记录。

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

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

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

还有什么需要注意的吗?

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

您需要做的是创建一个名为 rsEmployees 的 Object 类型的 SSIS 变量。您在执行 SQL 任务中的结果集将映射到 User::rsEmployees

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

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

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