首页 > 解决方案 > ("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,但找不到任何可行的解决方案。任何想法,将不胜感激。

谢谢

标签: sql-serverbulkinsert

解决方案


将 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)

这个错误对我有用。


推荐阅读