2

Oracleデータベースに約1200のテーブルがあり、SQLServerデータベースにインポートする必要があります。ただし、任意のインポートで、インポートする必要のあるテーブルを選択できるようにインポートを構成したいと思います。

したがって、すべてのテーブルをリストするカスタムXMLファイルと、そのテーブルをインポートするかどうかを示す各テーブルのフラグがあります。また、すべてのテーブルをインポートするパッケージを作成しました。これを変更して、実行時にXMLファイルからインポートするかどうかをチェックするようにします。

私はここで与えられたようなものを実装することを考えていましたが、これらの多くのテーブルに対してこれを実行したくないし、それがその仕事をするかどうかもわかりません。

どうすればこれを回避できますか?これにSSIS構成ファイルを使用できますか(わかりませんが)?実行時にXMLを読み取り、XMLファイル(またはキーと値のペアを持つ他のファイル)に基づいてテーブルをインポートする方法はありますか?

どんな形の助けでも大歓迎です。

4

2 に答える 2

4

大変な作業に思えるかもしれませんが、これが私がアプローチする方法です。

  1. インポートする必要があるテーブルごとに 1 つのパッケージを作成します。つまり、1200 個のパッケージです。
  2. パッケージ名をフラグ列とともにメタデータ テーブルに格納し、そのパッケージを実行する必要があるかどうかを示します。
  3. 親パッケージを作成します。
  4. 親パッケージに SQL 実行タスクを追加します。次のような SQL コマンド:select PackageName from metadataTable where Flag =1実行する必要があるパッケージのリストを取得します。
  5. 結果セットをオブジェクト変数にマップします。
  6. for each ループ コンテナーを追加します。
  7. for each ループ コンテナー内に Execute package タスクを追加し、パッケージ名プロパティをパラメーター化します。

このセットアップ全体で、実行する必要のあるパッケージが読み込まれ、次々と実行されます。

このアプローチが気に入ったら、Andy Leonard のSSIS フレームワークをチェックしてください。

于 2013-02-05T15:12:28.747 に答える
3

サミュエル・ヴァンガは堅実なアプローチをしています。私がやろうとしている唯一のことは、何かを使用してこれらの 1200 個のパッケージをプログラムで生成することです。

あなたが SSIS オブジェクト モデルと一般的な .NET 開発に精通しているかにもよりますが、コーディングが好きなら、 EzAPIについて調査します。

それ以外の場合は、BIMLとBIDSHelperパッケージ生成機能を見てください。BIML スクリプトを作成するために Mist のライセンスを取得する必要はありません。BIMLScript で既存のスクリプトを参照して、おそらくほとんどのニーズを解決できます。コピー、ペースト、生成。

于 2013-02-05T15:49:13.270 に答える