2013-01-16 48 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なしで可能ですか?

は、あなたの助けに感謝、私はどちらかの単一qoutesに.pdfファイルの内容を使用することはできません、それは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 all、ファイルは私のローカルCにあります:うまくいきました。どういうわけか、サンプルファイルの値と一致できませんが、別の問題です。この変換をテストするにはどうすればよいでしょうか?私はリバースキャスト(varchar(max)としてbinC1)をしようとし、それは非常に最初のNULの値(私はメモ帳+ +で参照してください)で停止したので、pdfとして逆ファイルを開くことができません。この列は、最後にPDFのdocとしてwwwブラウザで表示されます。 – user1982778

関連する問題