Oracle
[Oracle] ADD_MONTHS 함수 사용시 ORA-01861 에러
봉주니
2022. 4. 11. 16:19
날짜 데이터를 다루기 위해 한달 전을 계산하기 위해 ADD_MONTHS 를 사용할 때,
SQL툴에서는 정상적으로 동작하고, 프로시저 컴파일에도 문제가 없지만 실제로 서버에서 동작할 때 에러를 발생시키는 경우 이다.
String 으로 된 날짜 '20220411'을 사용할 때,
SELECT TO_CHAR(ADD_MONTHS('20220411',-1),'YYYYMMDD') FROM DUAL;
결과 :
20220311
로 프로시저가 동작하는데, 실제 서버에서 아래와 같이 에러를 발생시킨다.
ORA-01861: 리터럴이 형식 문자열과 일치하지 않음
따라서, TO_DATE를 사용해서 정상쿼리로 동작하게 만들었다.
SELECT TO_CHAR(ADD_MONTHS(TO_DATE('20220411','YYYYMMDD'),-1),'YYYYMMDD') FROM DUAL;
주의 !!
TO_DATE 뒤에 타입을 지정하지 않을 경우에도 에러가 발생한다.
SELECT TO_CHAR(ADD_MONTHS(TO_DATE('20220411'),-1),'YYYYMMDD') FROM DUAL;
반응형