2010-04-09 5 views
25

У меня есть база данных H2 (http://www.h2database.com), и я хотел бы вставить файл в поле BLOB через простой простой sql-скрипт (например, для заполнения тестовой базы данных). Я знаю, как это сделать с помощью кода, но я не могу найти, как сделать сам скрипт sql.Вставить BLOB через sql-скрипт?

Я попытался пройти путь, т.е.

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

, но это не удается.

Внутри кода (Java, например), то легко создать объект файла и передать в, а непосредственно из сценария SQL, я застрял ...

Любая идея?

David

ответ

32

Для тестирования вы можете вставить литерал hex bytes или использовать функцию RAWTOHEX(string), как показано ниже.

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')); 
+0

выглядит очень полезная функция для тестирования в самом деле! спасибо за подсказку – dm76

+3

@David Michel: Я забыл суть вашего вопроса; похоже, что вы хотите «FILE_READ», добавленный выше. – trashgod

+0

действительно, это именно то, что я хотел. приветствия! – dm76

Смежные вопросы