尝试使用以下行在Bocket中导入数据,但收到错误:
Msg 4866,Level 16,State 8,Line 3
批量加载失败。第1行第96列的数据文件中的列太长。验证是否正确指定了字段终止符和行结束符。Msg 7301,Level 16,State 2,Line 3
无法从OLE DB提供程序" BULK"获取所需的接口(" IID_IColumnsInfo")对于链接服务器"(null)"。
我的陈述有什么问题吗?当我使用导入向导时它工作正常。
BULK INSERT BICX.dbo.raw
FROM 'D:\NEW_CDR\NEW.txt'
WITH
(
FIRSTROW = 5,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
答案 0 :(得分:1)
如你所说,该表包含95列,并且错误表示列96太长,您的行分隔符就会出现问题。
如果您的文件来自Windows系统,则很可能是\r\n
,或者如果不起作用,您可以尝试0x0a
BULK INSERT BICX.dbo.raw
FROM 'D:\NEW_CDR\NEW.txt'
WITH
(
FIRSTROW = 5,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\r\n'
);
或
BULK INSERT BICX.dbo.raw
FROM 'D:\NEW_CDR\NEW.txt'
WITH
(
FIRSTROW = 5,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '0x0a'
);