批量插入不起作用

时间:2016-05-26 09:22:17

标签: sql-server-2012 bulkinsert

我有一个批量插入查询,如下所示

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~

1 个答案:

答案 0 :(得分:0)

您是否为BioWare工作?

反正 这里的问题不是来自行终止符。错误消息告诉您第一个错误发生在第一列,因此您的字段终止符存在问题。

我的赌注是数据文件类型。尝试'widechar'而不是'widenative'。本机字段终止符是\ t,使用native将使BULK忽略FIELDTERMINATOR选项。

WKR。