パイプ区切りの CSV ファイルから SQL Server にデータを一括インポートしています。データは次のようにフォーマットされます
A|B|CCCCCC\r\n
CSV ファイルを 16 進エディタで表示して、ファイルが UTF-8 形式であることと、行が「\r\n」で終了していることの両方を検証しました。
コマンドは
BULK INSERT MyTable FROM 'C:\Path\File.csv'
WITH (FIRSTROW=1, MAXERRORS=0, BATCHSIZE=10000, FIELDTERMINATOR = '|',
ROWTERMINATOR = '\r\n')
3 番目の列は、最初は CHAR(6) として定義されていました。これは、このフィールドが常に正確に 6 (ASCII) 文字幅のコードであるためです。その結果、一括挿入中に切り捨てエラーが発生しました。
次に、列をCHAR(8)に広げました。インポートは機能しましたが、
SELECT CAST(Col3 As VARBINARY(MAX))
列データが 0x0D0A (または「\r\n」、行ターミネータ) で終わることを示します。
インポートされたデータに行ターミネータが含まれているのはなぜですか?どうすれば修正できますか?