【发布时间】:2021-05-29 11:17:22
【问题描述】:
我在 SQL Server 中有一个包含 3 列的表:
id (int), Name (varchar), Column_Vb (Varbinary)
我想使用BCP 将数据从数据文件导入此表。 Id 和 Name 列包含 id 和名称,但 Column_Vb(数据类型为 varbinary)列中的数据包含 blob 文件的位置。
当我执行BCP IN 命令时,我想将 blob 文件从指定位置加载到表中,但不是直接将位置名称写入表中。
有什么方法可以通过BCP 将这些 blob 文件加载到varbinary 列中吗?
我尝试过使用格式文件,但它不起作用。由于有很多数据,我需要一个批量导入选项本身。
这些屏幕截图显示了我的数据和格式文件:
【问题讨论】:
-
我不认为 bcp.exe 是您在此处寻找的工具,因为您正在尝试提取多个文件引用。如果是我,我会编写一个 PowerShell 脚本,该脚本使用 Import-Csv 加载您的第一个文件(将分隔符设置为
|字符)并遍历其行以: 1. 将引用的二进制文件加载到字节数组中,然后 2. 将 Id、Name 和 Column_Vb 值作为单行插入。 -
什么是 BLOB?它是某种数据湖吗?你有 Azure 吗?
-
@ASH blob 只是文件,它们包含二进制数据。它与数据湖或 azure 无关。
-
考虑在 C# 中使用
SqlBulkCopy -
只有 C# 支持 SqlBulkCopy 吗?如果是这样,有没有办法使用 java 来做到这一点? @查理脸
标签: sql-server blob bcp bulk-load data-files