如何解决SQL Server批量插入失败,但是使用导入向导很容易导入文件
我有一个R脚本,它将多年的FFIEC银行呼叫报告计划合并为平面文件(每个计划一个),然后将每个计划写入制表符分隔的,不带引号的平面文件中,以适合批量插入SQL Server 。然后我运行以下批量插入命令:
bulk insert CI from 'e:\CI.txt' with (firstrow = 2,rowterminator = '0x0a',fieldterminator = '\t')
批量插入将运行一段时间然后退出,并显示以下错误消息:
Msg 7301,Level 16,State 2,Line 4
Cannot obtain the required interface ("IID_IColumnsInfo") from OLE DB provider "BULK" for linked server "(null)".
我在这里搜索了答案,最常见的问题似乎是rowterminator参数。我知道我创建的文件具有换行符而没有回车符,因此'0x0a'是正确的参数(但是我尝试了'\ n'却不起作用)。
有趣的是,我尝试将fieldterminator设置为乱码,只是为了看看发生了什么,并且得到了预期的错误消息:
The bulk load failed. The column is too long in the data file for row 1,column 1."
这告诉我SQL Server有权访问该文件,并且确实开始插入它。
此外,我进行了手动导入(右键单击数据库,任务->导入数据),SQL Server吞下了文件,没有任何障碍。这说明表的布局很好,文件也一样?
文件末尾是否有可能使批量插入混淆?我查看了一个十六进制编辑器,它的结尾是数据,后跟0A(换行的十六进制代码)。
我很困惑,并愿意接受任何可能性!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。