web-dev-qa-db-fra.com

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 simple (pour remplir une base de données de test par exemple ). Je sais comment faire cela via le code mais je ne trouve pas comment faire le script sql lui-même.

J'ai essayé de passer le chemin, c'est-à-dire.

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 File et de le transmettre, mais directement à partir d'un script SQL, je suis bloqué ...

Une idée ?

David

30
dm76

Pour les tests, vous pouvez insérer le littéral octets hexadécimaux ou utiliser la fonction RAWTOHEX(string) , 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 charger les champs BLOB à partir d'un fichier, FILE_READ(fileNameString) peut être une alternative utile.

insert into a values(3, FILE_READ('file.dat'));
39
trashgod
5
GordonB