MyBatis在Oracle数据库下用concat函数模糊查询之参数个数无效错误

时间:2025-03-19 08:55:24

Oracle拼接字符串concat需要注意的小事项

在用ssm框架编写代码的时候,因为数据库换成了Oracle,在模糊查询数据的时候突然发现报错了

select * from SYS_MENU where url like concat('%',#{roleName},'%')

一直报错参数个数无效,在网上查找资料发现模糊查询的sql语句还是concat('%','s','%')这样写的

但后面发现实际上oracle中不支持concat的三个参数的拼接,需要更正为

     select * from SYS_MENU where url like concat(concat('%',#{roleName}),'%')

或者使用

select * from SYS_MENU where url like '%' ||  #{roleName} || '%';