人大金仓数据库merge sql error, dbType kingbase, druid-1.2.5, sql错误解决

人大金仓数据库merge sql error, dbType kingbase, druid-1.2.5, sql错误解决

一、背景

生产环境总是提示该错误信息,但是sql可以正常查出结果,项目经理提了好几次,作为一名合格的程序员必须解决这个问题。

二、错误分析

完整报错信息
merge sql error, dbType kingbase, druid-1.2.5, sql : 
SELECT
xxxx      
  AND info.name like concat('%',?::varchar,'%') 
com.alibaba.druid.sql.parser.ParserException: syntax error, expect ), actual :: pos 1834, line 67, column 57, token ::
  1. 提示merge sql错误
  2. 提示::附近有错误

三、解决思路

  1. 针对错误提示一
    在这里插入图片描述
    在配置文件中发现开启了sqlmerge配置,改为false后发现不再报该错误。
    通过查看资料发现这个配置有用
druid.stat.mergeSql=true:
此属性是 Druid 数据源的一个统计功能,
它可以将具有相同 SQL 语句但不同参数的查询请求合并为一个请求,
从而减少网络传输和资源消耗。当多个 SQL 语句在客户端执行之前被合并时,
生成一个带有占位符的 SQL 语句。这是为了减少通信开销,
而在服务器端将这些占位符替换为实际的参数值。

最好还是开启mergeSql=true
2. 针对错误提示二

通过查阅资料,发现在 SQL 查询的 concat 函数使用过程中出现了语法错误,Kingbase 数据库不支持::的写法。

推荐一下写法
AND 表名称.字段名称 like '%' || ? || '%'

四、总结

在KindBase数据库想要进行模糊搜索推荐使用 | | 进行拼接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值