본문으로 바로가기

   

 

ORA-12899: "USER"."TABLE"."COLUMN" 열에 대한 값이 너무 큼(실제: x, 최대값: n) 에러 해결 방법에 대하여 알아보겠습니다.

 

ORA-12899: "USER"."TABLE"."COLUMN" 열에 대한 값이 너무 큼(실제: x, 최대값: n)

ORA-12899: "value too large for column actual x maximum n"

 

 

데이터를 추가하다가 아래와 같은 에러가 발생하였습니다.

 

 

예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.

아래의 쿼리는 DEPTNO와 DNAME 데이터를 추가하려고 작성한 예제입니다.

위의 쿼리를 실행하니 ORA-12899: "value too large for column actual x maximum n" 에러가 발생하였습니다.

에러가 발생한 이유는 위의 쿼리에서 DNAME에 대한 최댓값이 14라고 나와있습니다.

DNAME의 최댓값이 14란 소리는 처음에 DNAME의 컬럼을 설정할 때 크기를 VARCHAR2(14)로 지정했다는 소리입니다.  

그렇기에 최대 들어갈 수 있는 자릿수는 14자리입니다. 

하지만, 위의 쿼리를 보면 DNAME에 삽입하려는 데이터 'ABCDEFGHIJKLMNOP'는 총 16자리입니다.

즉, 14자릿수를 초과하여서 발생한 에러입니다.

 

해결 방법

1. 삽입하려는 데이터 크기를 14자리 이하로 수정하는 방법

2. 컬럼의 크기를 데이터의 크기만큼 변경하는 방법

 

DNAME의 컬럼의 크기를 16자릿수까지 허용하도록 변경하여 데이터를 삽입해보도록 하겠습니다.

 

컬럼의 크기를 바꾸니 정상적으로 쿼리가 실행된 것을 확인할 수 있습니다.

 

Reference

MODIFY - 테이블 컬럼(명, 크기, 타입 등) 변경하는 방법