Oracle 11.2.0.1.0
Apache Tomcat 7.0.52 ( Oracle Java 1.7.0_60-b19)
OS : Linux ( 2.6.32-431.el6.x86_64 )
클라이언트 환경 :
SqlDeveloper 4.1.1.19 ( Java 1.8.0_45 )
현상 : SqlDeveloper 에서는 정상적으로 수행되는 쿼리가 웹 프로그램에서 실행하는 경우
ORA-01861: literal does not match format string
오류가 발생.
1 2 3 4 5 | SELECT TO_CHAR(TO_CHAR(TRUNC(to_date( '20160602' ), 'D' ), 'YYYY-MM-DD' )) wsday , TO_CHAR(TO_CHAR(TRUNC(to_date( '20160602' ), 'D' ), 'DY' )) ws , TO_CHAR(TO_CHAR(TRUNC(to_date( '20160602' ), 'D' )+6, 'YYYY-MM-DD' )) weday , TO_CHAR(TO_CHAR(TRUNC(to_date( '20160602' ), 'D' )+6, 'DY' )) we FROM DUAL ; |
해결방법 : 문자열을 날짜 형태로 변환하는 경우 명시적으로 포맷 문자값을 지정하여 처리한다.
1 2 3 4 5 | SELECT TO_CHAR(TO_CHAR(TRUNC(to_date( '20160602' , 'YYYYMMDD' ), 'D' ), 'YYYY-MM-DD' )) wsday , TO_CHAR(TO_CHAR(TRUNC(to_date( '20160602' , 'YYYYMMDD' ), 'D' ), 'DY' )) ws , TO_CHAR(TO_CHAR(TRUNC(to_date( '20160602' , 'YYYYMMDD' ), 'D' )+6, 'YYYY-MM-DD' )) weday , TO_CHAR(TO_CHAR(TRUNC(to_date( '20160602' , 'YYYYMMDD' ), 'D' )+6, 'DY' )) we FROM DUAL ; |
댓글 없음:
댓글 쓰기