想通过一个简单的 sql 脚本(例如填充测试数据库)将文件插入到 BLOB 字段中。我知道如何通过代码做到这一点,但我找不到如何执行 sql 脚本本身。
我试图通过路径,即
INSERT INTO mytable (id,name,file) VALUES(1,'file.xml',/my/local/path/file.xml);
但这失败了。
在代码中(例如 java),很容易创建一个 File 对象并将其传入,但是直接从 sql 脚本中,我被卡住了......
任何想法?
为了测试,您可以插入文字十六进制字节或使用该RAWTOHEX(string)函数,如下所示。
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)可能是一个有用的替代方法。
FILE_READ(fileNameString)
insert into a values(3, FILE_READ('file.dat'));