본문 바로가기
[개발] Programming/Database

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

by eatyourKimchi 2019. 8. 27.

해당 오라클 오류는 데이터 타입이 맞지 않아서 발생합니다.

아래 예를 보시면 TO_CHAR에 문자열 형식의 데이터를 인자로 넘겨줬지만,

이를 문자로 인식하지 않고 숫자로 인식해서 발생하는 오류입니다.

 

TO_CHAR('20190827', 'YYYYMMDD') // 오류 발생

TO_CHAR(TO_DATE('20190827'), 'YYYYMMDD'), 'YYYYMMDD') // 오류 해결

 

1
2
SELECT TO_CHAR(TO_DATE('20190827', 'YYYYMMDD'), 'YYYYMMDD') AS TEST_DATE
  FROM DUAL 
;
cs



 

이 경우 TO_CHAR 함수에 넘겨주는 데이터 형식을 DATE 타입으로 바꾼 뒤에 넘기면 오류가 발생하지 않습니다.

마찬가지로 시간의 경우도 동일하게 변환을 해주면 오류가 발생하지 않습니다.

 

TO_CHAR('2259', 'HH24MI') // 오류 발생

TO_CHAR(TO_DATE('2259'), 'HH24MI'), 'HH24MI') // 오류 해결

 

1
2
SELECT TO_CHAR(TO_DATE('20190827', 'YYYYMMDD'), 'YYYYMMDD') AS TEST_TIME
  FROM DUAL 
;
cs

 

 

결론: TO_CHAR에 인자를 넘겨줄 때는 문자형이더라도 숫자면 NUMBER로 인식해서 오류를 발생시킨다.

 

 

댓글