방명록
- [Oracle] ADD_MONTHS 함수 사용시 ORA-01861 에러2022년 04월 11일 16시 19분 16초에 업로드 된 글입니다.작성자: 봉주니
날짜 데이터를 다루기 위해 한달 전을 계산하기 위해 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;
반응형'Oracle' 카테고리의 다른 글
[Oracle] iBatis iterate 사용 (0) 2023.02.13 [Oracle] SQL Developer 자동 추적 오류 (0) 2022.08.10 [Oracle] Oracle, MySQL, PostgreSQL 차이점은? (0) 2021.12.17 [Oracle] long 타입에서 특정문자 추출하기 (3) 2021.12.09 [Oracle] ORA-28365: 전자 지갑이 열려 있지 않습니다. (0) 2021.12.08 다음글이 없습니다.이전글이 없습니다.댓글