ORA-00909: 인수의 개수가 부적합합니다.


이 문제는 Mybatis의 if문을 사용할 때 인수 값을 잘못 지정하는 경우 발생하는 문제입니다.


문제의 원인은 MySql과 Oracle의 쿼리가 다르기 때문입니다.


필자는 Oracle을 사용하면서 검색 기능을 추가할 때 이 오류를 접했습니다.


필자의 해결 방법입니다.



<if test = “searchType == ‘title’.toString()”>and content like CONCAT(‘%’, #{keyword}, ‘%’)

 

이 문장은 MySql에서는 정상적으로 동작하지만 Oracle에서는 ORA-00909: 인수의 개수가 부적합합니다. 라는 오류를 뱉어냅니다.


Oracle에서 사용할 때는


<if test = “searchType == ‘title’.toString()”>and content like CONCAT(‘%’ || #{keyword}, ‘%’)


이런 식으로 변경해줘야 합니다.



+ Recent posts