web-dev-qa-db-ja.com

SQLスクリプト経由でBLOBを挿入しますか?

H2データベース( http://www.h2database.com )があり、単純な単純なsqlスクリプトを介してBLOBフィールドにファイルを挿入したい(たとえば、テストデータベースを作成する) )。私はコードを介してそれを行う方法を知っていますが、SQLスクリプト自体を行う方法を見つけることができません。

パスを渡そうとしました、つまり.

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

しかし、これは失敗します。

コード(たとえばJava)内で、Fileオブジェクトを作成して渡すのは簡単ですが、SQLスクリプトから直接、私は立ち往生しています...

何か案が ?

デビッド

30
dm76

テストのために、リテラル 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'));
_
39
trashgod

H2databaseではありませんが、役立つ場合があります。 http://jerrytech.blogspot.com/2009/03/tsql-to-insert-imageblog.html

5
GordonB