我想从 oracle DB 导入近 1200 万条记录,但由于 SSIS 内存缓冲区问题,我需要每年迭代我的数据流任务,即 2005 年到 2012 年(7 次)。我如何使用 foreach 我的 oracle 查询来逐年获取数据。
询问
SELECT * FROM EMP_RECORDS_DETAILS WHERE to_char(JOIN_DT,'YYYY')=2005
我想从 oracle DB 导入近 1200 万条记录,但由于 SSIS 内存缓冲区问题,我需要每年迭代我的数据流任务,即 2005 年到 2012 年(7 次)。我如何使用 foreach 我的 oracle 查询来逐年获取数据。
询问
SELECT * FROM EMP_RECORDS_DETAILS WHERE to_char(JOIN_DT,'YYYY')=2005
我已经使用 Sql Server 解决了上述问题。因此,您唯一需要更改的是 Select 查询
首先创建一个变量来存储每年的日期。
Name: TimeValue DataType=Int32
使用 ForEach 循环并在集合选项卡中选择 Foreach 项目枚举器
单击“列”选项卡并创建一个数据类型为 int 的新列
在变量映射映射上面创建的变量。
如果之前不知道日期的值,那么您可以在 foreach 循环之前使用执行 sql 任务,并从表中仅选择 dateTime 列值并将其存储在一个变量中,并在 foreach 循环中使用集合中的变量枚举器中的 Foreach选项卡并选择在上面执行 sql 任务中创建的变量。
希望这对你有帮助。