h2 jdbc异常-奇数字符的十六进制字符串

vatpfxk5  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(570)

下面的stmt适用于mysql,但不适用于h2数据库
插入(内容)选择convert(“{”text“:”testsee“,”url“:”http://hjh.com“,”phone“:”}',二进制)作为内容来自。。。
sql状态:90003错误代码:90003消息:奇数个字符的十六进制字符串:“{”“text”“:”“testsee”“,”“url”“:”http://hjh.com“”,”“电话”“:”“”“}”;sql语句:有人能告诉我如何解决这个问题吗?内容列的类型为blob。这是一个spring-boot微服务,测试在h2上运行。stmt是用puresql编写的,在启动时通过flyway执行。

643ylb08

643ylb081#

这是因为数据库正在尝试将java字符串转换为blob(字节字符串),所以将列的类型更改为defined as blob to varchar(size)或text。
你也可以查看这个链接https://dev.mysql.com/doc/refman/8.0/en/blob.html
blob是一个二进制大对象,它可以保存可变数量的数据。这四种blob类型是tinyblob、blob、mediumblob和longblob。它们仅在所能容纳的值的最大长度上不同。这四种文本类型是tinytext、text、mediumtext和longtext。它们对应于四种blob类型,具有相同的最大长度和存储要求。

相关问题