在使用MyBatis操作Oracle数据库的时候,写模糊查询突然发现原本在MySql中正确的代码,在Oracle中报错,参数个数无效

<if test="empId!=null and empId!=''">
and e.empId like CONCAT('%',#{empId},'%')
</if>

异常信息;

Oracle模糊查询CONCAT参数个数无效-LMLPHP

经过查阅数个资料后得知Oracle的CONCAT函数不像MySql那样支持三个参数的拼接,需要把SQL语句修正为:

and e.empId like CONCAT(CONCAT('%',#{empId}),'%')

或者

and e.empId like '%' || #{empId} ||'%';

以上仅对Oracle有效!

PS:

  基础真的非常重要!!

  再简单的代码也要多敲几遍,这样才“有可能“成为你的一部分”!

04-28 11:48