Oracle のテーブルから SQL Server 2008 R2 にレコードを移行する必要があります。データを移動し、移行された ID のコピーをステージ テーブルに保存できるようにするソリューションを既に設計しました。
ルックアップ コンポーネントとステージ テーブルのおかげで、重複を避けることができます。これは、移行がいくつかの異なる時点で行われ、移行されるオブジェクトが特定の順序に従っていないためです。
私のSSISスキーマの下:
式と 2 つの変数を使用して、スロットで Oracle からデータを収集します。
SELECT *
FROM ORDERS
WHERE OrderID > [@User::Start] AND OrderID <= [@User::End]
AND STATUS <> 'Open'
ステータスが「オープン」でない注文がすべて移行されたら、残りのデルタを移行します。これを行うには、ステージですでに移行済みのデータを参照する必要があります。SO データ ソースのクエリは次のようになります。
SELECT *
FROM ORDERS
WHERE OrderID NOT IN ([@User::AlreadyMigratedIDs])
テーブル Stage に存在するすべての ID を変数「AlreadyMigratedIDs」に格納する必要があります。
Oracle からソース データを収集するために ADO.net コンポーネントで使用されるクエリの条件として、(SQL Server 上の) ステージ テーブルの情報をどのように使用できますか? ADO.net オブジェクトの前に、ルックアップなどの他の SSIS を使用できますか?