0

複数のデータ セットが混在するフラット ファイルを読み込もうとしています。フラットファイルは次のようになります。

1999XX9999
2XXX99
1999XX9999
2XXX99
3XXXXX999.99
1999XX9999

すべての行の最初の文字は、行のレコード タイプを定義します。データ フローでスクリプト コンポーネントを作成し、生の行 (以下のように) を解析し、3 つの出力 (1、2、3) を 3 つの異なるテーブルに保存したいと考えています。出来ますか?

テーブル 1 (列 1、列 2、列 3):
999、XX、9999
999、XX、9999
999、XX、9999

テーブル 2 (列 1、列 2):
XXX、99
XXX、99

テーブル 3 (列 1、列 2):
XXXXX、999.99

スクリプトコンポーネントができない場合、SSISで他の方法はありますか? 最善の解決策は、ファイルを 3 つのファイルに分割し、SSIS を使用してそれらをロードするプログラムを作成することですか?

4

1 に答える 1

2

それは可能であり、おそらくスクリプト変換を使用して保守可能なソリューションを作成する必要があります。

フラット ファイル ソースと接続マネージャーを使用して、入力ファイルを列に完全に解析することはできません。行を完全に読み取り、スクリプト変換で文字列関数を使用して、各行を目的の列に解析します。

レコードを別の宛先に配布するには、次のいずれかを実行できます。

  1. 変換で複数の出力を定義し、各行の最初の文字で条件を使用して、列を送信する出力を決定します。
  2. スクリプト変換のみを使用して行を列に解析し、a を使用しConditional Split Transformationてレコードを複数のデータ パスに論理的に分割します。

どちらの方法も論理的に似ていますが、実装は異なります。

于 2012-07-19T08:26:58.223 に答える