Oracle DBから1200万近くのレコードをインポートしたいのですが、SSISメモリバッファの問題のため、2005年から2012年までの各年(7回)にデータフロータスクを繰り返す必要があります。foreachを使用してデータを年ごとにフェッチするにはどうすればよいですか。
クエリ
SELECT * FROM EMP_RECORDS_DETAILS WHERE to_char(JOIN_DT,'YYYY')=2005
Oracle DBから1200万近くのレコードをインポートしたいのですが、SSISメモリバッファの問題のため、2005年から2012年までの各年(7回)にデータフロータスクを繰り返す必要があります。foreachを使用してデータを年ごとにフェッチするにはどうすればよいですか。
クエリ
SELECT * FROM EMP_RECORDS_DETAILS WHERE to_char(JOIN_DT,'YYYY')=2005
私はSQLServerを使用して上記の問題を解決しました。したがって、変更する必要があるのはSelectクエリだけです。
まず、各年の日付を格納する変数を作成します。
Name: TimeValue DataType=Int32
ForEachループを使用して、[コレクション]タブで[ForeachItem列挙子]を選択します
[列]タブをクリックして、データ型intの新しい列を作成します
変数マッピングマップで、上記で作成された変数。
dateの値が以前にわからない場合は、foreachループの前にexecute sql taskを使用し、テーブルからdateTime列の値のみを選択して変数に格納し、foreachループでコレクションの変数列挙子からForeachを使用できます。タブをクリックし、上記の実行SQLタスクで作成された変数を選択します。
これがあなたに役立つことを願っています。