2010-04-09 22 views
25

Mam bazę danych H2 (http://www.h2database.com) i chciałbym wstawić plik do pola BLOB za pomocą zwykłego prostego skryptu sql (do wypełnienia testowej bazy danych na przykład). Wiem, jak to zrobić za pomocą kodu, ale nie mogę znaleźć sam skrypt sql.wstawić obiekt BLOB za pomocą skryptu sql?

Próbowałem przejść ścieżkę, tj

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

ale to się nie powiedzie.

w kodzie (Java na przykład), to łatwo utworzyć obiekt pliku i przekazać, że w, ale bezpośrednio ze skryptu sql, utknąłem ...

jakiś pomysł?

David

Odpowiedz

32

Do testowania można wstawić literał hex bytes lub użyć funkcji RAWTOHEX(string), jak pokazano poniżej.

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 

Uzupełnienie: Do ładowania BLOB pól z pliku, FILE_READ(fileNameString) może być użytecznym rozwiązaniem.

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

wygląda to bardzo przydatna funkcja do testowania rzeczywiście! dzięki za podpowiedź – dm76

+3

@ David Michel: Przeoczyłem istotę twojego pytania; wygląda na to, że chcesz "FILE_READ", dodany powyżej. – trashgod

+0

w rzeczy samej, dokładnie tego chciałem. Twoje zdrowie ! – dm76

Powiązane problemy