2013-01-16 39 views
5

我试图将.pdf文件的内容放入varbinary(max)类型的列中。如何将.pdf文件内容放入varbinary(max)列

我该如何做到这一点?我玩convertcast,但它似乎没有工作。

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

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

然后:

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

或者,也许我可以使用插入来自文件,不知道这是可能的,而不BULK?

感谢您的帮助,我不能使用.pdf文件中单qoutes任何内容,它把它作为varchar - (

感谢所有帮助 戴

+1

将技术放在问题的标签中,而不是标题。 –

+0

有几种方法可以访问文件,如果可以从服务器访问运行SQL Server的帐户的文件。这是这里的情况,还是'C:\ xxx \ inp.pdf'你的本地机器上的一个文件? –

回答

4

试试这个:

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 

或者直接:在OPENROWSET功能

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

更多细节可以在MSDN's SQL Server Books Online一如既往发现。

+0

Thansk所有,文件在我的本地C:并且它工作正常。不知何故,我无法匹配示例文件中的值,但这是另一个问题,测试此转换的好方法是什么?我试图做反向转换(binC1作为varchar(max)),并停止在第一个NUL值(因为我在记事本++中看到它),所以我无法打开反向文件为pdf。本专栏最后在www浏览器中以pdf文档形式进行查看。 – user1982778

相关问题