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 变量之间的链接
我有一个简单的工作,它获取员工 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 变量之间的链接