오전에 프로그램을 하나 수정하면서 발견한 오류
검색 결과, Java에서 ? 에 값이 없거나 잘 못 들어가는 경우 생기는 오류라고 한다..
디버깅 과정을 거쳐보니 xml에 주석을 달았던 것이 문제였다.
지금 프로그램은 xml에서 바인드 변수(:)를 이용해 java단으로부터 특정 값들을 받아오고 있다.
문제가 발생한 이유는 조건절을 주석으로 막아놔서 java단에서는 값이 넘어오는 데 그 값을 처리못해 생긴 오류였다.
아래는 문제의 조건절..
(테이블명만 임의로 수정했다)
WHERE A.조건='Y'
AND B.조건 IN(
SELECT 조건
FROM C
WHERE C조건='Y'
AND C조건
AND (C.조건=NVL(:값1, 값2) OR C.조건2=NVL(:값1, 값2))
)
다음부터 조심하자.
+피드백은 언제나 환영입니다 :)