【问题标题】:("IID_IColumnsInfo") error with SQL Server BULK INSERT of CSV file("IID_IColumnsInfo") SQL Server BULK INSERT CSV 文件错误
【发布时间】:2020-11-26 13:54:10
【问题描述】:

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

谢谢

【问题讨论】:

  • 您能否提供来自输入 .csv 的几行示例供我们测试?这适用于我创建的虚拟 csv 文件和与该 csv 中的列匹配的 testingtable 表。
  • 这是您窗口中唯一的代码吗?该错误表明它正在尝试将其解析为其他代码的一部分。
  • 大家好,我添加了更多信息 - 希望对您有所帮助。感谢您的观看。
  • 您使用的是什么版本的 SQL Server?这对我来说仍然可以正常工作,文件和查询在视觉上与您的相同(尽管我删除了 FIRSTROW 参数,因为它设置为 2,您的第一行将被省略)..
  • 显然,我使用的是 SQL Server Management Studio,15.0.18040.0。感谢行提示!

标签: sql-server bulkinsert


【解决方案1】:

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

这个错误对我有用。

【讨论】:

  • 谢谢!你是一个救生员..
【解决方案2】:

还有另一个潜在的罪魁祸首。我一直在我的 SQL Server 2017 Express 中运行 BULK INSERT,我的语法使用了 FORMAT = 'CSV' 和 '\n' 的 ROWTERMINATOR - 几个月来一直运行良好。

我在另一个系统中添加了一个新列,在该系统中我经常将数据导出为 CSV,但当我去执行另一个 BULK INSERT 时,它失败了,因为我的 CSV 中有一个额外的列没有对齐与我的 SQL 表中的列。哦!我只需要在我的 SQL 数据库中添加相同的新列,一切都很好。对我来说是一个愚蠢的错误,但也许它会帮助其他人。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2016-11-29
      • 2018-02-15
      • 2013-01-13
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多