当前位置:   article > 正文

MySQL迁移达梦数据库避坑

MySQL迁移达梦数据库避坑

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

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

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

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

  1. LambdaQueryWrapper<PfMessageReal> query = new LambdaQueryWrapper<PfMessageReal>()
  2. .eq(PfMessageReal::getBusinessType,businessType)
  3. .eq(PfMessageReal::getReceiver,pfUser.getAccount());
  4. List<PfMessageReal> 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}值进行比较。

未待完续。。。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/683889
推荐阅读
相关标签
  

闽ICP备14008679号