web-dev-qa-db-ja.com

バルクロードデータ変換エラー(切り捨て)

このエラーが発生しています

Bulk load data conversion error (truncation) for row 1, column 12 (is_download)

ここにcsvがあります... 1行しかありません

30,Bill,Worthy,sales,,709888499,[email protected],,"Im a a people person., to work together for this new emerging env.HTTP://applesoftware.com","Bill and Son of Co","Contact Us: Contact Form",0

これが私の一括挿入ステートメントです...

SE SalesLogix
GO

CREATE TABLE CSVTemp
(id INT,
firstname VARCHAR(255),
lastname VARCHAR(255),
department VARCHAR(255),
architecture VARCHAR(255),
phone VARCHAR(255),
email VARCHAR(255),
download VARCHAR(255),
comments VARCHAR(MAX),
company VARCHAR(255),
location VARCHAR(255),
is_download VARCHAR(255)
)
GO

BULK
INSERT CSVTemp
FROM 'c:\leads\leads.csv'
WITH
(
DATAFILETYPE = 'char', 
BATCHSIZE = 50, 
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n' 
)
GO
--Check the content of the table.
SELECT *
FROM CSVTemp
GO

問題はほとんどの場合うまくいきますが、状況によっては(これがそれらの1つです)エラーが表示されます

このレコードでこのエラーが発生する原因についてのアイデア

15
Matt Elhotiby

区切り文字が一貫していないため、コメントフィールド内のコンマを区切り文字として選択しています。最善の解決策は、すべてのフィールドを二重引用符で囲み、FIELDTERMINATOR'","'に設定することです。または、コメント内にありそうにないもの(~など)にコンマを置き換えて、FIELDTERMINATOR = '~'を設定します。

13
Wil

Wilのコメントに加えて、12列すべてが表示されているように見えるので、rowterminatorが正しくない可能性があります。まず、これらのファイルをまとめるプログラムが実際に最後の行の最後に改行を入れていることを確認してください。これが当てはまらない多くのプログラムを修正しなければなりませんでした。キャリッジリターンがあることを確認したら、それがどのタイプのキャリッジリターンであるかを確認するために実験する必要があります。場合によってはchar(10)のみ、場合によってはchar(13)のみであり、場合によっては両方を持っているが順序が間違っていることもあります。だから、試してみてください:

ROWTERMINATOR = '\n'
ROWTERMINATOR = '\r'
ROWTERMINATOR = '\n\r'
ROWTERMINATOR = '\r\n'
8
Aaron Bertrand

System.Data.SqlClient.SqlException(0x80131904):行97、列33の一括読み込みデータ変換エラー(切り捨て)

上記のエラーについては、確認できます

  • データ型サイズ列(例:VARCHAR(255))は、データをインポートするのに十分かどうかです。
  • AND 行終端記号
    • ROWTERMINATOR = '0x0A'
    • ROWTERMINATOR = '\ n'
    • ROWTERMINATOR = '\ r\n'
  • FIELDTERMINATOR
    • 選択したフィールドターミネータがデータ内で発生しないことを確認してください。可能性がある場合は、他の文字に置き換えます。 |ファイル内。
0
itsrizi