Error
[오라클 Error] ORA-01861: literal does not match format string
꼬요버디
2024. 7. 26. 14:49
728x90
ORA-01861: literal does not match format string
구WAS에서는 잘 돌아가는 구문이 신WAS에서는 이렇게 종종 오라클 에러를 내뱉는다..
✅ 원인
날짜 변환하는 오라클 함수 TO_DATE를 쓰는데 두 번째 인자를 넣지 않아서 SQL에서 문자열 형식이 맞지 않다는 ORA-01861을 에러로 뱉음. 데이터베이스 세팅에 따라 기본 날짜 타입이 달라서 서버 환경에 따라 다르게 나오는 것이다.
아래 예시와 같이 TO_DATE 함수 안에 어떤 형식으로 날짜 타입을 받을 것인지 빠져 있다.
-- 틀린 SQL 예시
SELECT TO_CHAR(TO_DATE(REQ_DATE),'YYYY-MM-DD') FROM GGOYO_TB
✅ 해결
TO_DATE (컬럼, 날짜타입)을 꼭 같이 써줘야 한다.
-- 옳은 SQL 예시
SELECT TO_CHAR(TO_DATE(REQ_DATE, 'YYYYMMDD'),'YYYY-MM-DD') FROM GGOYO_TB