( "IID_IColumnsInfo" ) 错误与 SQL 服务器批量插入 CSV 文件



我是SQL Server的新手,所以请原谅我在这里有点菜鸟。

此处显示的代码返回以下错误:

无法从链接服务器"(null("的 OLE DB 提供程序"BULK"获取所需的接口 ("IID_IColumnsInfo"(。

法典:

BULK INSERT testingtable
FROM 'D:TimeLordsdatadb-test-file.csv'
WITH
(FORMAT = 'CSV', 
FIELDQUOTE = '"',
FIRSTROW = 2,
FIELDTERMINATOR = ',', 
ROWTERMINATOR = 'n',  
TABLOCK)

我试过使用:

ROWTERMINATOR = '0x0a'

ROWTERMINATOR = 'rn'

这是 CSV 文件:https://gyazo.com/0392b660c97e3cac27f2337993190c69

这是我的SQL表:https://gyazo.com/fbbaf6204df9bb574d8887864cc95ea0

这是完整的SQL查询:https://gyazo.com/ffe020437f07524ce44420bedeebf0d4

我已经搜索了StackOverflow,但找不到任何有效的解决方案。任何想法将不胜感激。

谢谢

将 FORMAT = 'CSV' 更改为 DATAFILETYPE = 'char'

或者只是删除格式="CSV"行,因为您的文件可能不符合RFC 4180。

BULK INSERT testingtable
FROM 'D:TimeLordsdatadb-test-file.csv'
WITH
(FIELDQUOTE = '"',
FIRSTROW = 2,
FIELDTERMINATOR = ',', 
ROWTERMINATOR = 'n',  
TABLOCK)

这对我有这个错误。

还有另一个潜在的罪魁祸首。我一直在我的SQL Server 2017 Express中运行BULK INSERTs,我的语法使用FORMAT = 'CSV'和一个ROWTERMINATOR'' - 它已经工作了几个月。

我向另一个系统添加了一个新列,我经常将数据导出为 CSV,当我去执行另一个批量插入时,它失败了,因为我的 CSV 中有一列与我的 SQL 表中的列不对齐。咚!我只需要在我的 SQL 数据库中添加相同的新列,一切又好起来了。对我来说是一个愚蠢的错误,但也许它会帮助其他人。

旧帖子,但是嘿,每一点知识都有帮助。 如果您使用 CSV 其他编码或类型,例如,如果您为 Macintosh 或 UTF-8 保存 CSV(就像在 Excel 中一样(,这也会遇到此问题,这不符合 FORMAT = 'CSV'。 您可以尝试其他选项,例如行终止符 = '\r',同时删除 FORMAT = 'CSV',这对非基于 Windows 的 CSV 文件为我做了。

对我来说,错误是第一行末尾的额外空格。

相关内容

  • 没有找到相关文章

最新更新