【发布时间】:2019-12-04 02:16:55
【问题描述】:
我尽我所能寻找任何资源,但我只看到将图像加载到 SQL Server 中的varbinary(max) 列的示例。我想将实际文档转换为varbinary 格式,并将它们加载到数据库列中。
我会担心以后转换它们。我知道你会说“当你可以只存储文件的目录并从服务器上的文件位置检索文件时,你为什么要这样做?”这是因为我们正在创建一个用于发送通知的框架,而我们正在加载的 BLOB 文件将是文档 - 或任何类型的附件。这正是我老板想要的方式。
CREATE TABLE [dbo].[AEI_Notification_Artifacts]
(
[artifact_id] [BIGINT] IDENTITY(1,1) NOT NULL,
[notification_id] [BIGINT] NOT NULL,
[artifact] [VARBINARY](MAX) NULL,
CONSTRAINT [PK_AEI_Notification_Artifacts]
PRIMARY KEY CLUSTERED ([artifact_id] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
我正在尝试通过平面文件和导入列任务加载文件并在 SSIS 中转换它们......但我发现的资源仅适用于图像。我想我需要创建一个手动复杂的脚本来转换数据然后流式传输。
【问题讨论】:
-
不应该太复杂。创建一个存储过程来插入您的数据。向 SSIS 添加脚本任务,确保它可以访问您正在加载的文件名。将文件内容读入 byte[] 并调用 sproc 插入数据,将 byte[] 作为 varbinary 参数传递。