MySQL迁移达梦数据库避坑

作者 : admin 本文共604个字,预计阅读时间需要2分钟 发布时间: 2024-06-10 共2人阅读

实体类字段receiver定义为String类型

MySQL中为blob类型,迁移到dm8同样为blob类型。

但是使用dm8数据库执行查询列表方法时,语法冲突

出现-6105: 第1 行附近出现错误: 

 LambdaQueryWrapper query = new LambdaQueryWrapper()
                    .eq(PfMessageReal::getBusinessType,businessType)
                    .eq(PfMessageReal::getReceiver,pfUser.getAccount());
       List messageReal = this.baseMapper.selectList(query);
       

原因:

在Mysql中blob可以使用String类型当作查询条件

SELECT id FROM message WHERE receiver = #{receiver}

但是在dm8中不可以用String类型的查询条件进行查询,需要转换类型

SELECT ID FROM MESSAGE WHERE dbms_lob.substr(RECEIVER) = #{receiver}

dbms_lob.substr函数是Oracle数据库提供的一个函数,用于从LOB(Large Object)类型的列中截取子字符串。在这个查询语句中,它被用来处理RECEIVER列的值,将其转化为可比较的字符串形式,然后与给定的#{receiver}值进行比较。

未待完续。。。

本站无任何商业行为
个人在线分享 » MySQL迁移达梦数据库避坑
E-->