2013-01-16 14 views
5

.pdf dosyasının içeriğini varbinary(max) türünde bir sütuna yerleştirmeye çalışıyorum..pdf dosya içeriklerini varbinary (max) sütununa nasıl yazılır

Bunu nasıl başarabilirim? convert ve cast ile oynadım, ancak işe yaramıyor.

var1 varbinary(max) tanımlamayı ve dosyanın içeriğini ayarlamayı düşünüyordum, ancak bu da başarısız oldu.

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

ve sonra:

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

Ya da dosyadan insert kullanabilirsiniz emin değilim bu DÖKME olmadan mümkün mü?

+1

Teknolojileri başlıkların değil, soruların etiketlerine koyun. –

+0

Bir dosyaya, SQL Server'ın çalıştığı hesap için bu dosyaya erişilebilirse, sunucudan erişmenin yolları vardır. Buradaki durum mu, yoksa yerel makinenizdeki bir dosya mı? C: \ xxx \ inp.pdf? –

cevap

0

Bir blob column kullanmak gerekir (

tüm Yardım için teşekkürler Dai -.

Ben de tek qoutes içinde .pdf dosyanın içeriğini kullanamaz, yardımına takdir, bu varchar gibi değerlendirir hangi belgenizi yazmak

4

bu deneyin:

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 

veya doğrudan: OPENROWSET işlevini

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

fazla detay her zaman olduğu gibi MSDN's SQL Server Books Online bulunabilir.

+0

Thansk all, dosya benim yerel c: ve iyi çalıştı. Bir şekilde, örnek dosyadaki değeri eşleştiremiyorum, ancak başka bir sorun, bu dönüşümü test etmenin iyi yolu nedir? Ters döküm (binC1 varchar (max) olarak) yapmaya çalıştım ve ilk NUL değeri (notepad ++ 'da gördüğüm gibi) üzerinde durdu, böylece pdf olarak ters dosyayı açamadım. Bu sütun, sonunda www tarayıcıda pdf doc olarak görüntülenecektir. – user1982778

İlgili konular