2010-04-09 29 views
25

Ho un database H2 (http://www.h2database.com) e mi piacerebbe inserire un file in un campo BLOB tramite un semplice script sql (per popolare un database di test per esempio). So come farlo tramite il codice ma non riesco a trovare come eseguire lo script sql stesso.inserisci un BLOB tramite uno script sql?

Ho provato a passare il percorso, cioè

INSERT INTO mytable (id,name,file) VALUES(1,'file.xml',/my/local/path/file.xml); 

ma questo fallisce.

All'interno del codice (Java per esempio), è facile per creare un oggetto di file e passare che in, ma direttamente da uno script SQL, mi sono bloccato ...

Qualche idea?

David

risposta

32

Per il test, è possibile inserire il valore letterale hex bytes oppure utilizzare la funzione RAWTOHEX(string), come mostrato di seguito.

create table a(id integer, item blob); 
insert into a values(1,'54455354'); 
insert into a values(2, RAWTOHEX('Test')); 
select UTF8TOSTRING(item) from a; 
TEST 
Test 

Addendum: Per il caricamento BLOB campi da un file, FILE_READ(fileNameString) può essere una valida alternativa.

insert into a values(3, FILE_READ('file.dat')); 
+0

sembra una funzione molto utile per la prova davvero! grazie per il suggerimento – dm76

+3

@David Michel: ho trascurato l'essenza della tua domanda; sembra che tu voglia 'FILE_READ', aggiunto sopra. – trashgod

+0

in effetti, è esattamente quello che volevo. Saluti ! – dm76

Problemi correlati