sql-server - ("IID_IColumnsInfo") CSV 文件的 SQL Server BULK INSERT 错误
问题描述
我是 SQL Server 的新手,所以请原谅我在这里有点菜鸟。
此处显示的代码返回以下错误:
无法从链接服务器“(null)”的 OLE DB 提供程序“BULK”获取所需的接口(“IID_IColumnsInfo”)。
代码:
BULK INSERT testingtable
FROM 'D:\TimeLords\data\db-test-file.csv'
WITH
(FORMAT = 'CSV',
FIELDQUOTE = '"',
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
TABLOCK)
我试过使用:
ROWTERMINATOR = '0x0a'
和
ROWTERMINATOR = '\r\n'
这是 CSV 文件:https ://gyazo.com/0392b660c97e3cac27f2337993190c69
这是我的 SQL 表:https ://gyazo.com/fbbaf6204df9bb574d8887864cc95ea0
这是完整的 SQL 查询:https ://gyazo.com/ffe020437f07524ce44420bedeebf0d4
我已经搜索了 StackOverflow,但找不到任何可行的解决方案。任何想法,将不胜感激。
谢谢
解决方案
将 FORMAT = 'CSV' 更改为 DATAFILETYPE = 'char'
或者只是删除 FORMAT = 'CSV' 行,因为您的文件可能不符合 RFC 4180。
BULK INSERT testingtable
FROM 'D:\TimeLords\data\db-test-file.csv'
WITH
(FIELDQUOTE = '"',
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
TABLOCK)
这个错误对我有用。
推荐阅读
- r - 如何创建包含不同颜色评级的箱线图?
- class - 递归函数和类中的 Raku 类型约束
- sql-server - 如何更改现有分区的 FILEGROUP (SQL Server)
- node.js - npm i 导致许多 ERESOLVE 问题
- c++ - 如何输出数组中的第一个、最后一个、第二个、倒数第二个等元素?
- java - Clojure/Java.regex:为什么重新查找带括号的正则表达式(如下)的抛出异常,而不是像“\ d +”这样的简单表达式?
- javascript - 如何在本机反应中从警报按钮传递值以发挥作用
- excel - 根据单元格 ID(例如 A2、D15 等)定位相应的列标题和行 ID
- python - 此代码查找单个字母并检查其是否在输入的单词中。如何将我正在搜索的字母作为参数?
- javascript - 制作动画 HTML 标题时遇到问题