我有一个批量插入查询,如下所示
BULK INSERT tmp_table FROM 'file.jrl'
WITH (
DATAFILETYPE='widenative' ,
FIELDTERMINATOR = '~' ,
MAXERRORS = 0 ,
ROWS_PER_BATCH = 116064 ,
ROWTERMINATOR = '0x0a' ,
TABLOCK )
它给了我以下错误
Msg 4866,Level 16,State 4,Line 1 批量加载失败。第1行第1列的数据文件中的列太长。验证是否正确指定了字段终止符和行终止符。
Msg 7399,Level 16,State 1,Line 1 链接服务器“(null)”的OLE DB提供程序“BULK”报告错误。提供商没有提供有关错误的任何信息。
Msg 7330,Level 16,State 2,Line 1 无法从OLE DB提供程序“BULK”获取链接服务器“(null)”。
的行
我正在使用DATAFILETYPE='widenative'
,因为我的数据包含一些特殊字符,例如Ñ,Ã等
对于RowTerminator值,我还检查了'\ n'
我的列分隔符是〜。有什么我必须改变的吗? 我的样本数据如下
12345~asdfdfdfd ~~~~~ 0000000000 ~~ 0000000000 ~~ rrrr±tttttt~
答案 0 :(得分:0)
您是否为BioWare工作?
反正 这里的问题不是来自行终止符。错误消息告诉您第一个错误发生在第一列,因此您的字段终止符存在问题。
我的赌注是数据文件类型。尝试'widechar'而不是'widenative'。本机字段终止符是\ t,使用native将使BULK忽略FIELDTERMINATOR选项。
WKR。