通过sql脚本插入BLOB?

dm7*_*m76 30 sql scripting blob h2

我有一个H2数据库(http://www.h2database.com),我想通过简单的简单sql脚本(例如填充测试数据库)将文件插入BLOB字段.我知道如何通过代码来做到这一点,但我找不到如何做sql脚本本身.

我试图通过这条路,即

INSERT INTO mytable (id,name,file) VALUES(1,'file.xml',/my/local/path/file.xml);
Run Code Online (Sandbox Code Playgroud)

但这失败了.

在代码(例如java)中,很容易创建一个File对象并将其传递,但​​直接从sql脚本中,我被卡住了......

任何的想法 ?

大卫

tra*_*god 40

对于测试,您可以插入文字十六进制字节或使用该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
Run Code Online (Sandbox Code Playgroud)

附录:对于BLOB从文件加载字段,FILE_READ(fileNameString)可能是一个有用的替代方案.

insert into a values(3, FILE_READ('file.dat'));
Run Code Online (Sandbox Code Playgroud)

  • @David Michel:我忽略了你问题的本质; 看起来你想要`FILE_READ`,上面补充说. (3认同)
  • 我想如果BLOB足够大可能会发生这种情况.你试过`-Xms`和`-Xmx`吗?http://java.sun.com/javase/6/docs/technotes/tools/windows/java.html (2认同)