728x90
반응형
에러 메시지
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred while applying a parameter map.
--- Check the statement (query failed).
--- Cause: java.sql.SQLException: ORA-00920: 관계 연산자가 부적합합니다
이 오류는 SQL문장에서
관계 연산자(=, <, >, <=, >=, !=, <>, AND, OR 등)가 잘못 사용되었음을 의미한다.
SQL 쿼리가 작성된 xml 파일에 들어가서 쿼리를 확인해봐야 한다.
1. 원인
기존 코드
<isNotEmpty prepend="AND" property="startDate">
<isNotEmpty property="endDate">
a.TotalDate #startDate# and #endDate#
</isNotEmpty>
</isNotEmpty>
java, spring MVC 기반 i-batis를 사용하고 있는 환경에서
select 쿼리 중 조회 기간을 설정하는 조건문에서 에러가 난 것 같다.
sql 쿼리로는 아래와 같은 between and 조건문이다.
AND a.TotalDate BETWEEN '20240801' and '20240807'
그런데 작성한 xml 파일의 위의 부분에 해당하는 쿼리에서 between이 빠졌다.
2. 해결
수정된 코드
<isNotEmpty prepend="AND" property="startDate">
<isNotEmpty property="endDate">
a.TotalDate BETWEEN #startDate# and #endDate#
</isNotEmpty>
</isNotEmpty>
빠진 키워드를 넣어주었더니 정상적으로 실행이 되었다.
728x90
반응형