私は SQL Server と SSIS が初めてで、このシナリオがあります。私はこれをコーディングして TSQL で作業しており、SSIS が提供するエラー処理の一部を使用したいので、SSIS でそれを実行できるかどうかを調べようとしています。現在、これを SQL 2008 で実行していますが、2012 を使用して SSIS をテストしています。これが私のシナリオです。
FIXED WIDTH FLAT FILE FORMAT:
HEADER CODE FILE_TYPE DATE
CODE LAST_NAME FIRST_NAME GENDER
TRAILER CODE DATE RECORD_COUNT
フラットファイルの内容:
H0123ABC07222013 98765スミス・トム・M 94586ジョンソンビルM T0123072220132
TSQL での私の手順は、大きな一時テーブルへの BULK INSERT と 1 つの列としてのロード
です。次のクエリ文字列を
作成します。FOR XML を使用して SUBSTRING を使用し、ヘッダー値に where 句を使用して値
を
選択し、FOR XML を使用して SUBSTRING を使用し、where 句を使用して値を選択します。 DETAILS 値の場合
、
FOR XML を使用して SUBSTRING を使用し、TRAILER 値に where 句を使用して値を選択します
例えば:
SELECT @sql1 = (SELECT (ヘッダーとして SUBSTRING(temp,1,2) を選択し、 SUBSTRING(temp,3,3) を CODE として、 SUBSTRING(temp,6,3) を File_Type として、 SUBSTRING(temp,9,8) as Cycle_Date FROM TestLoad WHERE SUBSTRING(temp,1,2) = 'H0' 為に XML パス('HEADER'), タイプ )、...
そのクエリの結果は、XML データ型の列に挿入されます
データに一致するように構造化されたテーブルへのSSIS書き込みでこれを行う方法に関する情報を見つけましたが、データをXMLに変換してファイルの順序をそのまま維持する方法が見つかりませんでした。XML 変換は、私が苦労しているところです。
ありがとう