반응형
Notice
Recent Posts
Recent Comments
Link
말랑말랑제리스타일
[Oracle]Ora-01861 에러 발생 원인과 처리방법 본문
[ERR0000]ORA-01861: literal does not match format string
Oracle DB를 프로그램에서 쓰다 보면 정말 자주 발생하는 Oracle 에러 중 하나입니다.
이 Oracle 에러가 상당히 골치아픈 이유는 토드나 SQL 디벨로퍼에서 쿼리로 실행하면 발생하지 않는데 프로그램에서 프로시저로 호출시 발생하기 때문이죠.
그럼 자세히 Ora-01861 에러의 발생 원인과 처리 방법을 알아보겠습니다.
1. Ora-01861 에러의 발생 원인
텍스트에 나온 것처럼 문자열이 포맷 스트링과 매칭되지 않는 에러입니다.
제가 이 Ora-01861 에러 많이 봤는데 발생 원인의 90프로가 날짜형을 문자열 형과 비교할 때 발생했습니다.
Oracle DB에서 날짜 데이터를 Varchar2(8)이나 Varchar2(14) 타입의 문자열 데이터로 만들어 넣는 경우가 많은데 이런 경우 테이블 A의 Varchar2(8) 인 데이터와 테이블 B의 Date 타입의 데이터를 비교하거나 조인할 때 발생하는거죠.
2. Ora-01861 에러의 처리 방법
처리 방법은 간단합니다. 날짜로 된 데이터를 TO_CHAR(날짜형데이터,'YYYYMMDD') 로 바꿔서 비교하거나 문자열 데이터를 TO_DATE(문자열데이터,'YYYYMMDD')로 치환해서 조인하거나 비교해주면 됩니다.
만약 VARCHAR2(14) 형태라면 'YYYYMMDDhhmmss'로 비교해줄 수 있겠습니다.
반응형
'데이터베이스 > Oracle SQL' 카테고리의 다른 글
[ORACLE SQL] DECODE,NVL,NVL2 차이점과 사용법 (2) | 2022.03.14 |
---|---|
오라클 주석처리하는 방법 및 단축키 (0) | 2022.02.08 |
[Oracle] Ora-12704 에러 원인과 대처 방법 (0) | 2022.01.13 |
Oracle Connect By Prior 계층형 쿼리 간단설명 (0) | 2022.01.11 |
[Oracle] Varchar2 단위 Char인지 Byte인지 확인 (0) | 2022.01.05 |
Comments