Oracle/[oracle] Error
[개발시 에러] ORA-01481 : 숫자 형식 모델이 잘못되었습니다.
kr98gyeongim
2021. 2. 24. 16:23
ORA-01481 : 숫자 형식 모델이 잘못되었습니다.
01. ORA-01481 오류는 어떤 오류인가?
TO_CHAR(수치) 함수 또는 TO_NUMBER 함수 등으로 어떤 형식 모델을 사용하여 변환을 수행 할 때
서식 모델에 잘못된 숫자 형식을 지정하고 있기 때문에 발생하는 오류이다.
02. ORA-01481 오류의 오류 출력
ex) 문자열 -200을 음수 부호가 있는 숫자 3자리로 변환하려고 다음 SQL문을 발행한 경우
SQL>SELECT TO_NUMBER('-200', '-999') AS RESULT FROM DUAL;
SELECT TO_NUMBER('-200', '-999') AS RESULT FROM DUAL
1행에서 에러가 발생했습니다.
ORA-01481: 숫자 형식 모델이 잘못되었습니다.
03. ORA-01481의 일반적인 발생 요인과 대처
ORA-01481은 일반적으로 다음과 같은 요인으로 발생합니다.
TO_CHAR(수치) 함수 또는 TO_NUMBER함수에서 지정하는 숫자 형식이 잘못되었습니다.
위의 오류 출력의 경우, TO_NUMBER 함수의 두 번째 인수 '-999'는 올바른 숫자 형식의 지정이 없기 때문에
ORA-01481이 발생하고 있습니다.
적절한 숫자 형식을 지정하는 것으로 의도된 서식 모델로 변환합니다.
위 예제의 경우 숫자 3자리와 선두에 부호를 부여하는 형식은 's999'이기 때문에 올바른 SQL은 아래와 같습니다.
SQL>SELECT TO_NUMBER('-200', 's999') AS RESULT FROM DUAL;
RESULT
--------------------------
-200
[추가설명]
숫자 형식 모델을 지정할 수 있는 변환 함수의 종류
・TO_CHAR
・TO_NUMBER
・TO_BINARY_DOUBLE
・TO_BINARY_FLOAT