【发布时间】:2013-06-13 17:25:50
【问题描述】:
我对 SSIS 相当陌生... 所以这是我的问题陈述 - 我想创建一个执行以下操作的包..
1) 将 1000 个 ID(主键)的集合分解为 100 个集合,即 100*10 2) 每次获得的 100 个值必须动态输入到变量-'X' 3) 我想在 where in 子句中使用这个变量
示例: 我有一个以“ID”为主键的学生表 我还有一个带有“ID”列的 Rank_Holders 表 select * from Rank_Holders where ID in (?) 是我想要做的。 ?表示映射的变量 - 它应该具有来自学生的 ID 列表。
实际上我在这里有一个大型数据库,一个来自 SQL Server,另一个来自 Oracle,ID 列的数量超过 30000,这就是为什么我需要将它分成块并输入 Where in 子句的原因
一步一步的包创建过程真的很有帮助,请帮忙。
【问题讨论】:
-
您的问题很难理解,为什么要在 WHERE 子句中包含 100 个值?您要拆分的 1000 个集合是否来自您在下面提到的来自两个来源的 30,000 个?
-
更大的图景,您正在尝试创建一种分而治之的策略,将数据从一个系统拉到另一个系统?包启动时,会提供 1000 的值。然后包会将其分成 N 个工作桶来并行执行该工作?
-
大家好,blinkc 是对的,我想将 1000 条记录拆分为 n 个桶,每个桶的值用于与另一个数据源匹配。例如,1000 被拆分为 10 个桶 bucktes 1- 10个将一个接一个循环运行。
-
@Goat_co - 这是一个给出 1000 条记录的示例......我想明确表示我有超过 30000 个值,因为其中有 20000 个条目的限制。我决定拆分总值并将其拆分为循环运行。
-
这听起来像是一种错误的方法来循环遍历多个子集以提供 WHERE 标准,但我觉得我对您的大局了解不够充分,无法做出有意义的贡献。跨度>