"Column is too long" error with BULK INSERT

Arvind picture Arvind · Jan 16, 2013 · Viewed 41.5k times · Source

I am trying to run the following command to bulk insert data from a CSV file--

 BULK INSERT TestDB.dbo.patent
 FROM 'C:\1patents.csv'
 WITH (FIRSTROW = 1,  FIELDTERMINATOR = '^', ROWTERMINATOR='\n');

The error I am getting is this--

Msg 4866, Level 16, State 1, Line 1
The bulk load failed. The column is too long in the data file for row 1, column 6.
Verify that the field terminator and row terminator are specified correctly.
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".

Now this is the data in the first row--

 00000001^^18360713^295^4^0

And in the table the last field (corresp. to the 6th column of data above = 0) is of type 'int'.

What am I doing wrong here? Why am I getting the above error?

Answer

Fabien Cousin picture Fabien Cousin · Nov 5, 2014

I got extraction from Oracle/Unix. I replaced \r\n by ROWTERMINATOR = '0x0a' and it worked for me.
Thanks a lot !