【问题标题】:Import File into SQL Server using BCP使用 BCP 将文件导入 SQL Server
【发布时间】: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


【解决方案1】:

事实上,如果你的内部有多个 sql server 实例 服务器或盒子或机器,您不指定服务器名称,然后 bcp 默认连接到默认实例,那么如果你的数据 表存储过程或它是什么,存储在其中一个 命名实例和 Of Corse 如果您不指定名为的服务器 实例全名,则将引发 Native error = 208 并 这显然是逻辑,因为您正在处理的数据源 存在于命名实例中而不是默认实例中,因此 命令必须是

bcp <databasename.schema.tablename> in|out  <complete target path where data will be imported|exported> -S<Full server named instance name> -T |or specify credentials through -P/-U    -c|-n

【讨论】:

    猜你喜欢
    • 2020-05-07
    • 2016-10-29
    • 2021-05-29
    • 1970-01-01
    • 2011-11-26
    • 2010-10-29
    • 2015-02-02
    相关资源
    最近更新 更多