我正在尝试在SQL Server中运行以下命令,但它无法正常工作:
bulk insert dbo.Sales
from 'C:\Users\sram1\Downloads\SalesFile20161103\SALECOPY.TXT'
with
(
FIRSTROW = 1,
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '0x0a'
)
以下是打印的错误消息:
Msg 4866,Level 16,State 1,Line 131
批量加载失败。第1行第1列的数据文件中的列太长。验证是否正确指定了字段终止符和行终止符。Msg 7399,Level 16,State 1,Line 131
OLE DB提供程序" BULK"对于链接服务器"(null)"报告错误。提供商没有提供有关错误的任何信息。Msg 7330,Level 16,State 2,Line 131
无法从OLE DB提供程序中获取行" BULK"对于链接服务器"(null)"。
我在StackOverflow中查看,看到我应该更改rowterminator,我已经尝试了两个' 0x0a'和' \ r \ n'。我的数据是制表符分隔的,但在某些情况下,标签显示为2个空格,有时则更多,有时则更少。这可能是问题的根源吗?如果是这样,我该如何解决?
答案 0 :(得分:1)
我的数据是制表符分隔的,但在某些情况下,标签显示为2个空格
没有标签字符不能是两个空格。 标签分隔并不意味着"数据在屏幕上显示时排成一行"。这意味着每个列值之间都有ASCII tab个字符。
如果这是一次性的事情,您可以将数据导入Excel,并将其导出为制表符分隔。如果它是常规事物,您将要学习如何检查文件以查找非打印字符,更改行结尾和修复分隔符。
HTH。