【发布时间】:2020-04-06 09:03:29
【问题描述】:
我的Files 表有 3 列:
ID int, FileName varchar(100), File varbinary(max)
我正在尝试使用 BCP 实用程序将本地存储的 Excel 文件 output.xlsx 加载到此 Files 表中。
当我使用以下命令时:
bcp TEST.dbo.files in C:\Users\Desktop\SampleTestFiles\OutputXULELogFiles\Test.xlsx -T -c
我收到此错误:
SQLState = S0002,NativeError = 208
错误 = [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]无效的对象名称“TEST.dbo.files”。
SQLState = 37000,NativeError = 11529
Error = [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]无法确定元数据,因为每个代码路径都会导致错误;请参阅之前的一些错误。
【问题讨论】:
-
BCP 适用于纯文本文件。如果您将 Excel 文件导出为 .csv,您就可以在其上使用 BCP。否则,您将需要使用 SSIS、SQL 导入向导或 OPENROWSET 等正确的提供程序。
-
“bcp 适用于计划文本文件”虽然在这种情况下是正确的(bcp 无法加载 excel 文件),但 bcp 仅适用于文本是不正确的。 BCP 还可以加载具有本机专有 SQL 二进制数据的文件。请参阅 -N 选项。文本在文件中仍将显示为文本,但非文本数据类型将作为本机 SQL 存储在文件中。对于文本查看器来说,它将看起来像一个狼吞虎咽的东西。自然,这些文件一开始就来自 sql server。
标签: sql-server bcp