2013-01-16 7 views
5

Sto provando a inserire il contenuto di un file .pdf in una colonna di tipo varbinary(max).Come inserire il contenuto del file .pdf nella colonna varbinary (max)

Come posso ottenere questo? Ho giocato con convert e cast, ma non sembra funzionare.

Stavo pensando di definire var1 varbinary(max) e impostarlo sul contenuto del file, ma anche questo non è riuscito.

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

e poi:

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

O forse posso usare inserto da file, non è sicuro questo è possibile senza all'ingrosso?

Apprezzo il vostro aiuto, non posso utilizzare i contenuti del .pdf file in singoli qoutes entrambi i casi, si tratta come varchar -. (

Grazie a tutti per l'aiuto Dai

+1

Inserire le tecnologie nei tag delle domande, non nel titolo. –

+0

Esistono modi per accedere a un file, se tale file è accessibile per l'account da cui SQL Server è in esecuzione, dal server. È la situazione qui, o è 'C: \ xxx \ inp.pdf' un file sul tuo computer locale? –

risposta

4

Prova questo:

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 

oppure direttamente:

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

Maggiori dettagli sulla funzione OPENROWSET possono essere trovati sul MSDN's SQL Server Books Online come sempre.

+0

Grazie a tutti, il file è sul mio locale c: e ha funzionato bene. In qualche modo non riesco a far corrispondere il valore del file di esempio, ma è un altro problema, qual è il modo migliore per testare questa conversione? Ho provato a fare reverse cast (binC1 come varchar (max)) e si è fermato sul primo valore NUL (come lo vedo nel notepad ++) quindi non riesco ad aprire il file invertito come pdf. Questa colonna deve essere visualizzata nel browser www come documento PDF alla fine. – user1982778

Problemi correlati