ORA-01861: literal does not match format string
ORA-01861: 리터럴이 형식 문자열과 일치하지 않음
간혹 로컬 PC 환경에서 Query 를 작성하여 정상 확인 한 후 서버에 올렸는데 에러가 발생하는 경우가 있습니다.
형식이 일치하지 않는 ORA-01861 이 대표적으로 발생 할 수 있는데요.
그중에서도 Date 형태의 데이터를 처리할 때 가장 많은 오류가 발생합니다.
SELECT TO_DATE(sysdate) from dual;
이런식으로 날짜 형식에 대한 포멧을 지정하지 않는 경우입니다.
이럴때는 반드시
SELECT TO_DATE(sysdate, 'YYYY-MM-DD') from dual;
과 같이 포멧을 지정해 주어야 ORA-01861 에러가 발생하지 않습니다.
이런 원인은 Date 형태의 포멧이 클라이언트(Session) 마다 NLS_DATE_FORMAT 에 디폴트로 설정이
되어있지만, 이게 환경마다 틀리기 때문입니다.
다른 해결 방법으로는
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' ;
이런식으로 세션에 대한 디폴트 포멧을 지정해 줄 수도 있지만, 쿼리에서 항상 포멧을 지정하는 습관을
가지시는게 좋겠지요.
'Database & Server Tip > Oracle' 카테고리의 다른 글
ORA-12899: value too large for column (0) | 2014.12.16 |
---|---|
ora-12541 : TNS 리스너가 없습니다. (4) | 2014.07.15 |
procedure (프로시저) 생성 및 사용 예제 (0) | 2014.05.22 |
Oracle View(뷰) 의 생성 및 사용 (0) | 2014.05.22 |
Oracle 인덱스(index) 에 대한 정의 (0) | 2014.05.22 |