기본 콘텐츠로 건너뛰기

181220 ORA-01481

ORA-01481: 숫자 형식 모델이 부적합합니다



1. 원인: CHAR 형식이 있어야 할 곳에 NUMBER 형식이 있어서

2. 해결: TO_CHAR함수를 이용하여 CHAR 형식으로 변경


3. TO_CHAR

1) 문제 인식

SELECT TO_CHAR('19851013''yyyy-MM-dd'FROM DUAL;
cs
 - 오류 발생함
 - ORA-01481: 숫자형식의 모델이 부적합합니다
 - ''(COMMA)로 묶기는 했지만 NUMBER 타입으로 인식
 - 'YYYY-MM-DD'는 DATE 타입에서 사용하는 것이므로 오류발생
 - '19851013'은 사람이 봤을 때는 날짜지만 컴퓨터(ORACLE)는 모름
 - DATE 타입으로 conversion을 하면 해결 가능

2) 해결
SELECT TO_CHAR(TO_DATE('19851013''yyyymmddhh24ml'), 'yyyy-MM-dd'FROM DUAL;
cs
 -  DATE 타입으로 일단 변환한 후에
 - 다시 CHAR 타입으로 변환