1

私は SSIS にかなり精通していますが、決して専門家ではありません。私は、ヘッダー行とトレーラー行を含むかなり複雑な固定幅のフラット ファイルをインポートする任務を負っています。これで、ヘッダー行とトレーラー行がなければ、これをかなり簡単に行うことができると確信しています。ただし、余分な行でこれを行う方法に困惑しています。これは、この例の簡略化されたバージョンです。最初の行はヘッダー行で、最後の行はその間のトレーラー行で、任意の量のデータです。

0 201308190102
1 123412341234   MR            JOE              BLOGGS                19810529
1 123412341235   MS            SUE              BLOGGS                19810516
9 201308190102

列はヘッダー行にあります: アクション タイプ 0 = ヘッダー、今日の日付 YYYYMMDD、シーケンス番号 01、予期される行数 02

データ行: 作成、更新、削除、カード番号 123412341234、タイトル、名、姓、生年月日に依存するアクション タイプ 1、2、3 トレーラー行: アクション タイプ 9 = フッター、今日の日付、シーケンス番号、実際の行数。

ファイルの日付、シーケンス番号、および行数の検証チェックを行う必要があります。

現在、ヘッダー/トレーラーの詳細がカード番号と同じ位置にあるため、フラット ファイル接続マネージャーでこれを設定する方法がわかりません。

だから私の考えは、ヘッダーとトレーラーの行を行番号とファイルの終わりか何かで分割することですか? スクリプト タスクで両方を分割する必要がありますか? フラット ファイル接続を行ごとにセットアップし、スクリプト タスクごとに列を分割する必要がありますか?

4

2 に答える 2

2

データからヘッダー行とフッター行を自信を持って判断できる場合は、条件付き分割を使用することをお勧めします。たとえば、過去のプロジェクトでは、ヘッダー行とフッター行の最初の 2 文字はそれぞれ「HR」と「TR」でした。

その規則により、実際に処理する必要のある行を分離することができました。別のパスで、ヘッダー行のデータに基づいて検証を行いました。最後に、ヘッダーの日付を宛先テーブルの処理日付列に使用したため、2 つのパスをマージしました。

ここに画像の説明を入力

于 2013-08-20T12:36:26.847 に答える