2013-01-16 38 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

相關問題