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
오류가 발생.
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 ;
해결방법 : 문자열을 날짜 형태로 변환하는 경우 명시적으로 포맷 문자값을 지정하여 처리한다.
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 ;
댓글 없음:
댓글 쓰기