2

次のシナリオにアプローチする最善の方法を見つけようとしています。

概要

支払いは 1 日を通して収集され、テーブル (SQL Server) に格納されます。毎日の終わりに、これらの支払いはエクスポートされ、別のデータベース (Oracle) に挿入されます。Oracle データベースに正常に挿入された支払いは、タイムスタンプで更新されます。

プロセス

ステップ 1 - 各支払いレコードを Oracle データベースと照合して、支払いレコードによって参照される値が Oracle データベースに存在することを確認する必要があります。このステップを満たす支払いは、パイプラインを下に移動します。

ステップ 2 - 支払いが Oracle データベースに挿入され、挿入エラーがあればレコードセットにリダイレクトされます。

アプローチ

支払い (SQL Server) とルックアップ値 (Oracle) に OLEDB データ ソースを使用し、Merge Join (Left Outer) を使用してデータを支払いに追加しています。Merge Join の結果から条件分岐を使用して、ルックアップ データと一致した支払いを OLEDB Destination に渡します。

元の支払いテーブルを、挿入された支払いのみで更新する必要があります。条件付き分割を使用すると、ステップ 1 で一致しなかった行を特定でき、最後の挿入でエラー出力の行をリダイレクトすることで、そこで失敗した行を特定できます。ただし、正常に挿入された支払いを特定する最善の方法と、元のテーブルを更新する最善の方法がわかりません。

4

1 に答える 1

1

おそらく、成功した支払いレコードのIDのリストを元のデータベースの一時テーブルに挿入し(マルチキャスト+ OLE DB宛先を使用)、ストアドプロシージャを実行するか、SQLクエリタスクを使用して値に基づいて元のテーブルを更新します一時テーブルで。その後、完了したら一時テーブルを切り捨てるかドロップできます。

于 2010-12-03T17:44:40.417 に答える