вставить BLOB через скрипт SQL? - PullRequest
29 голосов
/ 09 апреля 2010

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

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

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

но это не удалось.

Внутри кода (например, java) легко создать объект File и передать его, но прямо из сценария sql я застрял ...

Есть идеи?

David

Ответы [ 2 ]

38 голосов
/ 09 апреля 2010

Для тестирования можно вставить буквенные шестнадцатеричные байты или использовать функцию 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'));
5 голосов
/ 09 апреля 2010

Не h2database, но может помочь; http://jerrytech.blogspot.com/2009/03/tsql-to-insert-imageblog.html

...