如何将.pdf文件内容放入varbinary(max)列

时间:2013-01-16 07:47:56

标签: sql-server-2008-r2

我正在尝试将.pdf文件的内容放入varbinary(max)类型的列中。

我怎么能做到这一点?我使用了convertcast,但似乎没有效果。

我在考虑定义var1 varbinary(max)并将其设置为文件的内容,但这也失败了。

declare @var1 varbinary(max)
set @var1 'c:\xxx\inp.pdf' ???

然后:

insert into t1(xdata) values ( @var1);

或许我可以使用insert from file,不确定这可能没有BULK吗?

感谢您的帮助,我也不能在单个qoutes中使用.pdf文件的内容,它会将其视为varchar - (

谢谢大家的帮助。 戴

2 个答案:

答案 0 :(得分:6)

试试这个:

DECLARE @pdf VARBINARY(MAX)

SELECT @pdf = BulkColumn
FROM OPENROWSET(BULK N'C:\Users\......\YourFile.pdf', SINGLE_BLOB) AS Document;

SELECT @pdf, DATALENGTH(@pdf)

INSERT INTO dbo.YourTable(PDFContents) VALUES(@Pdf)
GO

或直接:

INSERT INTO dbo.t1(xdata) 
   SELECT BulkColumn
   FROM OPENROWSET(BULK N'C:\Users\......\YourFile.pdf', SINGLE_BLOB)

OPENROWSET功能的详细信息可以在MSDN's SQL Server Books Online上一如既往地找到。

答案 1 :(得分:0)

您需要使用撰写文档的blob column