0

重複の可能性:
引用符に一貫性のないCSVファイルのSQLServer一括挿入

基本的に次のようなSQLServerにインポートする1​​00万行のCSVが与えられました。

「A」、B、C、D、「E」、「F」

私は過去に、OPENROWSET BULKと、データの前後に引用符がない、または引用符が付いているすべての列がないCSVファイルに対応するフォーマットファイルを使用して、問題なく実行しました。

このようなCSVと、引用符が丸いものとないものがあるFormatFileを処理するために、人々は通常何をしますか?

注:別のテーブルと相互結合し、CSVからすべてのカンをインポートしないため、OpenRowset Bulkを使用しました(サーバー上のbcpにもアクセスできません)。

4

2 に答える 2

2

一貫性のない引用符を含む CSV ファイルの SQL Server 一括挿入で提供されるソリューションは、ファイルの前処理を提案します。あなたの例では、次の update ステートメントを使用してデータを修正できますが、これは引用符がコンマを含むデータを囲んでいない場合にのみ機能します。

UPDATE  @table
SET     value = CASE WHEN LEFT(value, 1) = '"'
                          AND RIGHT(value, 1) = '"'
                     THEN SUBSTRING(value, 2, LEN(value) - 2)
                     ELSE value
                END
于 2012-07-19T03:10:30.800 に答える
0

最初に、テキスト ファイル内のすべての二重引用符を見つけて、何も置換しません。次に、区切り文字としてコンマ (,) を使用して通常の一括挿入を実行できます。

于 2012-07-19T04:51:03.623 に答える