0

SSIS を使用して FoxPro テーブルを SQL Server 2008 にインポートしています。ソース データは、私が制御できない独自のデータベースです。Customers をインポートしているテーブルを呼び出しましょう。

場合によっては、Customers の構造が次のようになります。

ID (整数)

名前 (char(30))

アドレス (char(30))

都市 (char(20))

状態 (char(2))

郵便番号 (char(10))

CCNUM (char(16))

それ以外の場合は、次のようになります。

ID (整数)

名前 (char(30))

アドレス (char(30))

都市 (char(20))

状態 (char(2))

郵便番号 (char(10))

CCPTR (文字(100))

この独自のデータベースには、基本的に 2 つの異なるバージョンのデータベースがあります。古いバージョンには、基本的な 16 文字のフィールドである CCNUM (クレジット カード番号) と呼ばれるフィールドがありました。新しいバージョンでは、そのフィールドが CCPTR と呼ばれるフィールドに置き換えられました。これは、カード ポインター (実際のクレジット カード番号の暗号化された値) を表す 100 文字のフィールドでした。

ここでの問題は、これらの異なるテーブル構造を持つ 2 つのデータセットを切り替える必要があるたびに、SSIS が爆発し、手動でメタデータを更新する必要があることです。

私の質問は、SSIS が実行時にこれらのフィールドの 1 つを動的に検索し、そこにあるフィールドに基づいて、正しいデータを SQL の正しいテーブル構造にロードする方法はありますか?

これが以前に尋ねられたことがあれば、私を許してください。私はまだSSISにかなり慣れていないので、この答えを探してみましたが、役に立ちませんでした。

ありがとう、

マーク

4

2 に答える 2

0

短い答えはノーです。SSIS は、ソース コンポーネントとターゲット コンポーネントのメタ データに大きな変更がないことを想定しています。.NET を使用してプログラムでこれに影響を与える方法はありますが、それは要点を逃しています。

この問題に対する適切に設計された解決策は、データを共有ステージング テーブルにコピーする 2 つの個別のデータ フローを作成することです。このステージング テーブルをソースとして使用して、データを変換し、最終的なデータ構造にプッシュします。

于 2012-07-25T08:42:06.580 に答える
0

長さ (100) に基づいてパッケージをビルドし、(16) で調整すると、警告のみが表示されます。エラーが発生していますか?

于 2012-07-25T08:44:09.577 に答える