在使用MyBatis操作Oracle數據庫的時候,寫模糊查詢突然發現原本在MySql中正確的代碼,在Oracle中報錯,參數個數無效
<if test="empId!=null and empId!=''"> and e.empId like CONCAT('%',#{empId},'%') </if>
異常信息;
經過查閱數個資料后得知Oracle的CONCAT函數不像MySql那樣支持三個參數的拼接,需要把SQL語句修正為:
and e.empId like CONCAT(CONCAT('%',#{empId}),'%')
或者
and e.empId like '%' || #{empId} ||'%';
以上僅對Oracle有效!
PS:
基礎真的非常重要!!
再簡單的代碼也要多敲幾遍,這樣才“有可能“成為你的一部分”!