Oracle error
[ORA-01438] 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다.
DDDIDE
2024. 4. 25. 17:30
테이블에 데이터를 INSERT하는데 다음과 같은 에러가 발생했다.
발생한 원인은 자릿수가 테이블의 타입과 데이터가 맞지 않아서 발생한 것이다.
해당 컬럼의 타입: NUMBER(9, 4)
데이터 값: 435350.0000
NUMBER(9, 4)면 소수점을 제외한 아홉자리까지 숫자를 저장할 수 있지 않을까라는 생각을 했지만 확인해보니 소수점 자리까지 포함해야 한다. 즉, NUMBER(9, 4)의 의미는 전체 9자리 숫자 중에 정수는 5자리, 소수점은 아래 4자리까지 허용이 된다는 것이다.
따라서, 데이터의 단위를 의미할 컬럼을 바꾸고 데이터를 바꿀지 테이블의 데이터 타입을 바꿀지 고민하다가 고객사의 답변을 닫고 후자로 선택했다. 관련 테이블도 모두 조회해서 변경했다.
참고: 오라클 데이터 타입