У меня есть база данных H2 (http://www.h2database.com), и я хотел бы вставить файл в поле BLOB с помощью простого простого sql сценария (для заполнения тестовой базы данных, например). Я знаю, как сделать это с помощью кода, но я не могу найти, как сделать сам sql сценарий.
Я пытался передать путь, т.е.
INSERT INTO mytable (id,name,file) VALUES(1,'file.xml',/my/local/path/file.xml);
но это перестало работать.
В рамках кода (Java, например), легко создать объект Файла и передачу, что в, но непосредственно из sql сценария, я застреваю...
Какая-либо идея?
David
Для тестирования вы можете вставить литерал шестнадцатеричные байты или использовать функцию RAWTOHEX (строка)
, как показано ниже.
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
Добавление: для загрузки полей BLOB
из файла полезной альтернативой может быть FILE_READ (fileNameString)
.
insert into a values(3, FILE_READ('file.dat'));
Не h2database, но может помочь; http://jerrytech.blogspot.com/2009/03/tsql-to-insert-imageblog.html