Determine ROW that caused “unexpected end of file” error in BULK INSERT?

后端 未结 11 1980
闹比i
闹比i 2020-12-16 10:18

i am doing a bulk insert:

DECLARE @row_terminator CHAR;
SET @row_terminator = CHAR(10); -- or char(10)

DECLARE @stmt NVARCHAR(2000);
SET @stmt = \'
  BULK I         


        
11条回答
  •  佛祖请我去吃肉
    2020-12-16 10:42

    To locate the troublesome row use the errorfile specifier.

    BULK INSERT myData
    FROM 'C:\...\...\myData.csv'
    WITH (
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n',
    ERRORFILE = 'C:\...\...\myRubbishData.log' 
    );
    

    myRubbishData.log will have the offending rows and a companion file myRubbishData.log.txt will give you row numbers and offsets into the file.

    Companion file example:

    Row 3 File Offset 152 ErrorFile Offset 0 - HRESULT 0x80004005
    Row 5 File Offset 268 ErrorFile Offset 60 - HRESULT 0x80004005
    Row 7 File Offset 384 ErrorFile Offset 120 - HRESULT 0x80004005
    Row 10 File Offset 600 ErrorFile Offset 180 - HRESULT 0x80004005
    Row 12 File Offset 827 ErrorFile Offset 301 - HRESULT 0x80004005
    Row 13 File Offset 942 ErrorFile Offset 416 - HRESULT 0x80004005
    

提交回复
热议问题