想通过一个简单的 sql 脚本(例如填充测试数据库)将文件插入到 BLOB 字段中。我知道如何通过代码做到这一点,但我找不到如何执行 sql 脚本本身。
我试图通过路径,即
INSERT INTO mytable (id,name,file) VALUES(1,'file.xml',/my/local/path/file.xml);
但这失败了。
在代码中(例如 java),很容易创建一个 File 对象并将其传入,但是直接从 sql 脚本中,我被卡住了......
任何想法?
为了测试,您可以插入文字十六进制字节或使用该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'));
问题内容: 我会解释一个模糊的标题。 我正在编写一个SQL脚本来为数据库中表的每一行创建一个插入语句,纯粹是为了能够将该数据应用回另一个数据库。 这是我目前所拥有的: 它的效果很好,输出如下: 问题是,如果字段之一为空,则该行将无法生成更新脚本,在输出文件中,该行仅是空白。显然,由于有20多个字段,因此一些可选内容意味着几乎不会生成我的任何脚本。 有没有办法解决这个问题? 问题答案: 对于NULL
问题内容: 我正在尝试使用H2的runscript运行sql脚本。 该表之一包含一个长文本类型,该类型存储了一个xml文档(来自SAP数据库) 因此,Insert语句包含XML的长文本(大约200行XML),虽然很难看,但仍然可以使用。 在SQL解析期间,H2因ArrayOutOfBoundException而崩溃。 插入语句接受的长度是否有限制? 在nsert中,我使用刻度(如mysql中所使用
我有这样的设置: 所有.飞镖只是导入脚本1.飞镖和脚本2.dart并调用它们的主要。目标是在细节下有一堆可以单独运行的脚本。此外,我想要一个单独的 all.dart 脚本,可以一次运行所有脚本。这将使调试单个脚本更简单,但仍允许所有脚本运行。 all.dart 脚本1.飞镖 脚本2.dart 所以,这是工作,我看到运行时预期的打印语句all.dart但我有两个问题。 首先,我必须在详细信息下软链接
问题内容: 在Spring jdbc模板调用中,是否可以从SQL插入中获取@@ identity?如果是这样,怎么办? 问题答案: 该方法已重载,以获取一个称为GeneratedKeyHolder的对象,你可以使用该对象来检索自动生成的密钥。例如:
问题内容: 在Spring jdbc模板调用中,是否可以从SQL插入中获取@@ identity?如果是这样,怎么办? 问题答案: 该方法已重载,以获取一个名为GeneratedKeyHolder的对象,您可以使用该对象来检索自动生成的密钥。例如(从此处获取的代码):
问题内容: 项目配置: 数据库-MySQL 5.7 orm-Hibernate 4.3.11.Final / JPA 1.3.1.RELEASE Liquibase 3.4.2 当我仅从Liquibase从workBeanch运行脚本时,我的问题不存在。 我的SQL脚本看起来像这样: 确定并记录: 问题答案: 如果您使用的是yaml文件,则这是配置 确保stripComments应该为false,