问题描述
我有一个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 (将#修改为@)