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