sql 문 오류에 질문 드립니다 ㅜㅜ 0 1 3,237

by 프로그래밍밍 [어플리케이션관련] SQL DB [2016.08.09 09:42:39]


SELECT COUNT(*) AS CNT
  FROM TTIM405 A, TTIM014 B, THRI103 C, THRM100 D
 WHERE A.ENTER_CD = ?
   AND A.SABUN = ?
   AND A.YMD BETWEEN ? AND ?
   AND A.GNT_CD = ?
   AND A.ENTER_CD = B.ENTER_CD
   AND A.GNT_CD = B.GNT_CD
   AND A.ENTER_CD = C.ENTER_CD
   AND A.APPL_SEQ = C.APPL_SEQ
   -- AND C.APPL_STATUS_CD NOT IN ('23','33') /*결재반려,승인반려*/
   AND C.ENTER_CD = D.ENTER_CD(+)
   AND C.AGREE_SABUN = D.SABUN(+)

 

인데요 

JSP 웹 페이지 구동시 달력버튼을 클릭하여 날짜를 선택하게 되면 

CommonDAC:187 - java.lang.IndexOutOfBoundsException: Index: 4, Size: 4

at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)

이런 오류가 나게됩니다

SQL Error 라고 뜨는데요

아마 AND A.YMD BETWEEN ? AND ? 이쪽 부근이 잘못된거같습니다

무시하고 실행하게 되면

예외발생 java.lang.NullPointerExceptio 이런 오류가 뜨게 되는데요

   

ArrayList.java 에는 이렇게 되어있습니다

private void RangeCheck(int index) {
    if (index >= size)
        throw new IndexOutOfBoundsException(
        "Index: "+index+", Size: "+size);
    }

도와주세요 ㅜㅜ 무슨문제인지 모르겠네요

by Kyle [2016.08.10 15:11:52]

저런 경우는 거의가 바인딩되는 변수의 갯수 차이에서 생기는 오류가 대부분인듯 합니다.

쿼리의 "?" 와 바인딩 되는 객체에 입력된 값(변수) 확인해 보세요

그리고 가끔 보면 쿼리에 지우지는 않고 주석처리 해놓은 곳에 생각지도 않게 "?" 가 있는 경우도

있습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입