如何使用 bcp 将 blob 文件列表导入 SQL Server

问题描述

我在 sql Server 中有一个包含 3 列的表:

id (int),Name (varchar),Column_Vb (Varbinary)

我想使用 BCP 从数据文件中将数据导入到此表中。 IdName 列包含 id 和名称,但 Column_Vb(数据类型为 varbinary)列中的数据包含 blob 文件的位置。>

当我执行 BCP IN 命令时,我想将指定位置的 blob 文件加载到表中,但不是将位置名称写入表中。

有没有办法通过 BCP 将这些 blob 文件加载到 varbinary 列中?

我已经尝试过格式化文件,但它不起作用。由于数据量很大,我需要一个批量导入选项本身。

这些屏幕截图显示了我的数据和格式文件

Pic of the DataFile

Pic of the FormatFile

解决方法

我以前使用 Azure 执行过此操作。没有 Azure,只是一个猜测,但也许是这样的。

CREATE TABLE [dbo].[TestBlob](
[tbId] [int] IDENTITY(1,1) NOT NULL,[tbName] [varchar](50) NULL,[tbDesc] [varchar](100) NULL,[tbBin] [varbinary](max) NULL
) ON [PRIMARY]  

Insert TestBlob(tbName,tbDesc,tbBin) Select 
'81.pdf','PDF file',BulkColumn from Openrowset( Bulk 
'C:\blob\udoc\81.pdf',Single_Blob) as tb 

Insert TestBlob(tbName,tbBin) Select 'mountain.jpg','Image 
jpeg',BulkColumn from Openrowset( Bulk 'C:\blob\udoc\mountain.jpg',Single_Blob) as tb

Insert TestBlob(tbName,tbBin) Select 'Questionnaire.docx','Doc 
Question',BulkColumn from Openrowset( Bulk 
'C:\blob\udoc\Questionnaire.docx',tbBin) Select 'txpeng542.exe','Texpad 
Exe',BulkColumn from Openrowset( Bulk 'C:\blob\udoc\txpeng542.exe',Single_Blob) as tb

有关详细信息,请参阅下面的链接。

https://sqlrambling.net/2020/04/04/saving-and-extracting-blob-data-basic-examples/