[Oracle] TO_DATE, TO_CHAR (ORA-10858, ORA-01481 에러)

반응형
728x90
반응형

ORA-10858

a non-numeric chracter was found where a numeric as expected

 

해당 오류는 아래와 같은 상황에서 발생한다.

 

SELECT TO_DATE(SYSDATE, 'YYYYMMDD') FROM DUAL;

 

SYSDATE는 이미 DATE 타입의 값인데 해당 값을 다시 TO_DATE()를 사용하여 DATE 타입으로 변환을 시도했기 때문에 발생한다.

 

SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL;

 

Foramt 을 변경하려면, Date 타입의 값을 TO_CHAR()을 사용하여 변경해주자.

 

 

 

 

ORA-01481

invalid number format model

 

해당 오류는 아래와 같은 상황에서 발생한다.

 

SELECT TO_CHAR('20210705', 'YYYYMMDD') FROM DUAL;

 

해당 오류는 문자열의 일자를 TO_CHAR()을 사용하여 format을 지정하려고 했기 때문에 발생한다.

 

SELECT TO_DATE('20210705', 'YYYYMMDD') FROM DUAL;

 

이렇게 TO_DATE()를 사용하여 지정할 수 있다. 하지만 만약 Date 타입으로 조회가 불필요하다면 아래와 같이 조회하자.

SELECT TO_CHAR(TO_DATE('20210301', 'YYYYMMDD'), 'YYYYMMDD) FROM DUAL;

 

 

반응형

Designed by JB FACTORY