insérer un BLOB via un script sql?

j'ai une base de données H2 (http://www.h2database.com) et j'aimerais insérer un fichier dans un champ BLOB via un simple script sql (pour remplir une base de données test par exemple). Je sais comment faire cela via le code mais je ne peux pas trouver comment faire le script sql lui-même.

j'ai essayé de passer le chemin, i.e.

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

mais cela échoue.

dans le code (java par exemple), il est facile de créer un objet fichier et de le passer, mais directement à partir d'un script sql, je suis coincé...

une idée ?

David

27
demandé sur KM. 2010-04-09 16:26:25

2 réponses

Pour les tests, vous pouvez insérer littérale hex octets ou RAWTOHEX(string) fonction, comme indiqué ci-dessous.

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: Pour le chargement BLOB champs d'un fichier,FILE_READ(fileNameString) peut être une alternative utile.

insert into a values(3, FILE_READ('file.dat'));
36
répondu trashgod 2010-04-09 21:28:25
5
répondu GordonB 2010-04-09 13:58:41