大家好,又见面了,我是你们的朋友全栈君。
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} || ‘%’;
<select id=”findByPage” resultMap=”BaseResultMap” parameterType=”MLopLog”>
SELECT ID,
SHELVE_NO,
IN_TIME,
OUT_TIME,
ACCOUNT_ID,
TRANS_TIME,
TU_ID
FROM TB_DM_ML_OPLOG t
WHERE 1=1
<if test=”param.id != null “>
AND t.ID=#{param.id}
</if>
<if test=”param.tuId != null and param.tuId != ””>
AND t.TU_ID=#{param.tuId}
</if>
<if test=”param.accountId != null and param.accountId != ””>
AND t.ACCOUNT_ID LIKE CONCAT(CONCAT(‘%’,#{param.accountId}),’%’)
</if>
<if test=”param.shelveNo != null and param.shelveNo != ””>
AND t.SHELVE_NO LIKE CONCAT(CONCAT(‘%’,#{param.shelveNo}),’%’)
</if>
</select>
https://blog.csdn.net/lipr86/article/details/53669757
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139498.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...