ibatis 조건절 쿼리에서 ORA-933 에러 인데요 ㅠㅠ 0 6 8,189

by 김새롬 [2013.06.21 14:48:48]



ibatis 이용해 쿼리 조건절을 만들고 있는데요
 

org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
 --- The error occurred while applying a parameter map.
--- Check the ContentStatis.statis-InlineParameterMap.
 --- Check the statement (query failed).
 --- Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다

라고 뜹니다.

<isNotEmpty property="startDt" prepend="AND">
<isNotEmpty property="endDt">
#startDt# &lt;= TO_CHAR(TO_DATE(DAY, 'YYYY-MM-DD'), 'YYYYMMDD') AND #endDt# &gt;= TO_CHAR(TO_DATE(DAY, 'YYYY-MM-DD'), 'YYYYMMDD'))
</isNotEmpty>
</isNotEmpty>


 위 쿼리에서 오타나 뭐가 잘못 입력 된듯 한데, 어디서 문제인걸까용 ㅠㅠㅠㅠ?
by 용근님 [2013.06.21 15:09:25]

괄호가 하나 더 들어간거 같은데.. 맨 마지막에


by 아발란체 [2013.06.21 15:13:01]
개발 하실 때에는 iBatis 또는 MyBatis Log용 드라이브를 쓰시면
쿼리에 값 대입한 질의가 로그에 올라 옵니다.
로그에 올라 온 것 복사해서 바로 오렌지 같은 툴에 돌려보면 바로 어떤 부분이 문제가 있는지
바로 확인됩니다.

그리고 ID 값에 해당하는 XML 전 구문을 올려주시면 파악이 보다 수월 할 것 같습니다.

근데...
올려주신 것만 보면 괄호 하나 마지막에 더 들어갔습니다.
괄호 2개 열고, 2개 닫고, 2개 열고, 3개 닫았습니다.

by 김새롬 [2013.06.21 17:01:01]
감사합니다!! 알려주신 덕분에 해당 에러는 헤결 했는데 이젠 

"ORA-01841: 년은 영이 아닌 -4713 과 +4713 사이의 값으로 지정해야 합니다." 라는 에러가 뜨는데요ㅠㅠ

저건 날짜와 관련 된 에러 인듯 한데 맞나요?

by 용근님 [2013.06.21 17:03:06]

년도 포멧이 잘못들어왔나보져 에러보구 확인 해보세요

by 디케이 [2013.06.21 17:21:49]
DAY의 대쉬를 제거할려고 문자열을 날짜타입으로 바꿔서 다시 'YYYYMMDD'형식으로 치환했는데요
그냥 '-' 지우시면 됩니다.
이상 지나가다 우연히 발견해서 ...

TO_CHAR(TO_DATE(DAY, 'YYYY-MM-DD'), 'YYYYMMDD')
-->
REPLACE(DAY, '-')

음.. 그냥 아래와같이 하면 어떻지..

day BETWEEN substr(#startDt#,1,4)||'-'||substr(#startDt#,5,2)||substr(#startDt#,7)
  AND substr(#endDt#,1,4)||'-'||substr(#endDt#,5,2)||substr(#endDt#,7)

by 풀텀 [2013.06.21 18:22:00]
혹시 endDate값이 9999-12-31인가요?
네이년보니 똑같은 에러이신분들이 글 올린거 있던데 확인해 보시길 바라요.

select '99991231', 'yyyymmdd') + 1 from dual    <--- 이면 님과 같은 에러를 내구요,

select '29991231', 'yyyymmdd') + 1 from dual    <--- 이면 3000-01-01 이 나옵니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입