3

今日、次のような固定幅ファイルからの一括挿入があります。

BULK INSERT #TBF8DPR501
FROM 'C:\File.txt' WITH (
        FORMATFILE = 'C:\File.txt.xml'
        ,ROWTERMINATOR = '\n'
        )

フォーマット ファイルは各フィールドの幅を設定するだけで、一時テーブルに一括挿入した後、一括INSERT INTO X SELECT FROM temp変換できない列を変換するために作成しました。

私の質問は、一括挿入で次のような値を変換できるようにすることは可能ですか?

  • dd.MM.yyyyOR形式の日付ddMMyyyy
  • このような小数値0000000000010022(どこにあるのか100.22)

値を変換するために一時テーブルに一括挿入する必要はありませんか?

4

1 に答える 1

0

いいえ、そうではありません。BULK INSERT単にデータをできるだけ速くコピーするだけで、データを変換するわけではありません。一時テーブルを使用した現在のソリューションは、データ ウェアハウスおよびレポートのシナリオで使用される非常に一般的なものであるため、希望どおりに機能する場合は、そのまま使用し続けます。

ロード中に変換を行いたい場合は、SSISなどのETLツールを使用できます。しかし、現在のアプローチに問題はなく、SSIS は非常に「重い」代替手段になります。

于 2012-10-24T14:30:04.020 に答える