데이터베이스/오라클(Oracle) 57

ORA-01861: literal does not match format string 에러 원인

ORA-01861: literal does not match format string 의 에러 원인은varchar2 형식의 값을 date 형식과 비교하려 할때 문제가 발생한다예를들어 aaa 라는 컬럼에 20141027 이라는 문자 형식의 데이터가 들어가 있는데 이거를aaa between to_date(start_dt, 'YYYYMMDD') and to_date(end_dt, 'YYYYMMDD') 처럼 검색하려 할때 발생한다.따라서 이럴때는 변환 없이 그냥 aaa between start_dt and end_dt 로 검색하면 된다.단, SYSDATE 로 검색 할 때에는 to_char(SYSDATE, 'YYYYMMDD') 로 해줌녀 된다.

ORA-01858 에러

ORA-01858: 수치를 지정해야 할 위치에 비수치 문자가 지정되었습니다 이런 오라클 에러메시지는 보통 날짜형태 또는 날짜를 문자형태로 변환하여 처리하는 구분에서 에러가 발생함. 예를 들면 to_char(sysdate, 'yyyymmdd') 같은 구문에서 to_char 대신 to_date 를 쓰는 등 sql 을 잘못 작성하는 경우이거나 to_date() 함수를 사용할때 정확하지 않은 날짜구문을 입력한 경우 발생한다.