SQL模糊查詢報:ORA-00909:參數(shù)個數(shù)無效問題的解決
用oracle數(shù)據(jù)庫進行模糊查詢時,
控制臺報錯如下圖所示:

原因是因為敲的太快,語法寫錯了
正確的寫法是
pd.code like concat(concat('%',#{keyword}),'%')
java.sql.SQLSyntaxErrorException: ORA-00909: 參數(shù)個數(shù)無效
用MyBatis進行多參數(shù)模糊查詢的時候遇到這個異常,看了下打印日志,發(fā)現(xiàn)異常出在預編譯之后,插入實參的時候。
==> Preparing: select role_id, role_name, note from t_role where role_name like concat('%', ?, '%') and note like concat('%', ?, '%')
2018-12-13 20:24:28,567 DEBUG [com.ss.learn.chapter3.mapper.RoleMapper.getRolesByIdAndNote] - ==> Parameters: 1(String), 1(String)
異常提示:參數(shù)個數(shù)無效。檢查了下SQL語句
select role_id, role_name, note from t_role
where role_name like concat('%', ?, '%') and note like concat('%', ?, '%')
發(fā)現(xiàn)問題出現(xiàn)在concat上,concat是連接兩個字符串的函數(shù),這里連接了三個,把SQL改成兩個concat嵌套的
<select id="getRolesByIdAndNote" parameterType="map" resultType="role">
select role_id, role_name, note from t_role
where role_name like concat(concat('%', #{roleName}), '%')
and note like concat(concat('%', #{note}), '%')
</select>
總結(jié)
運行成功啦!以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持本站!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關注官方微信