SQL Server で BULK INSERT とフォーマット ファイルを使用して .CSV ファイルをインポートしようとしています。フォーマット ファイルを作成し、各値に正しいフィールド ターミネータを設定しました。フォーマット ファイルは正しく検証され、いくつかのテスト データを正常にインポートできました。
ただし、次のように、引用されたテキストの途中でコンマが発生すると問題が発生します。
" "SB","7Y4386429Y0351805","B5503","","Chris",1,10,"Paypal","こんにちは、支払いが遅れて申し訳ありません。すぐに支払いを送信します."
(サンプルデータ)
引用されているフィールドと引用されていないフィールドを正しく識別するようにフォーマット ファイルを設定しましたが、最後のフィールドの中央にコンマがあり、インポート中にエラーが発生しています。
FieldTerminator を "," に設定して、これも完全に省略しようとしましたが、ターミネータを無視して、代わりにフォーマット ファイル内のものを使用するべきではありませんか?
フィールドが引用符で囲まれているため、コンマによってフィールドが終了する理由がわかりません。これは設計によるものですか?フォーマット ファイル内のどのフィールド ターミネータとも一致しないため、コンマは無視する必要がありますか?
ここでのオプションは何ですか? 問題のデータは Paypal からのものであるため、エクスポート方法を変更する可能性はあまりありません。
何か案は?
重要な場合は、フォーマット ファイルの最初の部分を以下に示します (実際のファイルには 56 行が含まれます)。56 行すべてが同じ SQLCHAR データ型、同じ長さ、および同じ終了値を持ちます。
10.0
56
1 SQLCHAR 0 0 "\"" 0 DUMMY SQL_Latin1_General_CP1_CI_AS
2 SQLCHAR 0 100 "\",\"" 1 CH SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 100 "\",\"" 2 TransactionID SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0 100 "\",\"" 3 InvoiceID SQL_Latin1_General_CP1_CI_AS
5 SQLCHAR 0 100 "\",\"" 4 PayPalReferenceID SQL_Latin1_General_CP1_CI_AS
どんな助けでも大歓迎です。
ありがとう、
クリス。