通过sql脚本插入BLOB?

发布于 2024-08-27 21:48:11 字数 414 浏览 13 评论 0原文

我有一个 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 脚本中,我陷入困境......

知道吗?

I have an H2 database (http://www.h2database.com) and I'd like to insert a file into a BLOB field via a plain simple sql script (to populate a test database for instance). I know how to do that via the code but I cannot find how to do the sql script itself.

I tried to pass the path, i.e.

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

but this fails.

Within the code (java for instance), it's easy to create a File object and pass that in, but directly from a sql script, I'm stuck ...

Any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

み零 2024-09-03 21:48:11

为了进行测试,您可以插入文字 十六进制字节 或使用 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'));

For testing, you can insert literal hex bytes or use the RAWTOHEX(string) function, as shown below.

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: For loading BLOB fields from a file, FILE_READ(fileNameString) may be a useful alternative.

insert into a values(3, FILE_READ('file.dat'));
罪#恶を代价 2024-09-03 21:48:11

不是 h2database,但可能有帮助; https://blog.jerrynixon.com/2009/03/ tsql-to-insert-imageblog.html

链接博客文章中的示例代码(如果链接再次中断):

CREATE TABLE MyTable 
    (id int, image varbinary(max))

INSERT INTO MyTable
    SELECT      1
        ,(SELECT * FROM OPENROWSET(
            BULK 'C:\file.bmp', SINGLE_BLOB) as x )

Not h2database, but may help; https://blog.jerrynixon.com/2009/03/tsql-to-insert-imageblog.html

Example code from the linked blog article, should the link break again:

CREATE TABLE MyTable 
    (id int, image varbinary(max))

INSERT INTO MyTable
    SELECT      1
        ,(SELECT * FROM OPENROWSET(
            BULK 'C:\file.bmp', SINGLE_BLOB) as x )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文