오류 코드: ORA-01438
설명: 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다.
원인: 레코드를 삽입하거나 업데이트 할 때 열에 정의 된 정밀도를 초과하는 숫자 값이 입력되었습니다.
조치: 숫자 열의 정밀도를 따르는 값을 입력하거나 ALTER TABLE 명령과 함께 MODIFY 옵션을 사용하여 정밀도를 확장하십시오.

https://www.oraexcel.com/database-oracle-12cR1-ORA-01438/lang-ko

 

오라클12cR1 ORA-01438 value larger than specified precision allowed for this column

데이터베이스: 12c 출시 1 오류 코드: ORA-01438 설명: value larger than specified precision allowed for this column 원인: When inserting or updating records, a numeric value was entered that exceeded the precision defined for the column. 조

www.oraexcel.com

 

 

 

jsp 개발하는데 예제로 입력한 데이터 크기가 초과된거 같다.

열에 정의된 사이즈를 조절하면 되는 쉬운 문제.

.

.

 

예제로 입력한 값은 크기를 초과할 일이 없을텐데 이상하다 싶어보니깐 한가지를 간과함!!!

오라클에서 table을 생성했을 때 사이즈입력 시 20글자라 생각하고 20이라고 적었는데 20byte였다..

VARCHAR2(20 BYTE)은 터무니 없었네..

ORACLE 의 권장 character set 은 UTF-8 이며, UTF-8 은 문자 하나에 최대 4bytes.

* 한글은 UTF-8 에서 문자 하나당 3bytes, EUC-KR 에서 문자 하나당 2bytes

 

20글자면 적어도 최대 80은 되어야 했다.

https://mentha2.tistory.com/195

https://developyo.tistory.com/364

 

숫자도 NUMBER(1, 0)의미는 1자리 수라는거..

https://yermi.tistory.com/entry/Oracle-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%80%EC%9E%85-NUMBER-DATE-NUMBER-%ED%83%80%EC%9E%85-%ED%8A%B9%EC%A7%95-DATE-%ED%83%80%EC%9E%85-%EC%82%B0%EC%88%A0%EC%97%B0%EC%82%B0-SYSDATE

 

 

일 두 번하지 않으려면

생성시에 잘 확인해야만 한다.

+ Recent posts