ORA-12899: value too large for column
Oracle의미
정의된 최대 길이보다 긴 값이 문자/데이터 컬럼에 기록되었다. 예를 들어 15자 텍스트는 VARCHAR2(10) 컬럼에 들어가지 않는다.
원인
컬럼 폭이 데이터에 비해 부족함. 멀티바이트 문자 집합(UTF8)에서 문자 수가 바이트 한도를 초과함(BYTE semantics). 데이터 마이그레이션 중 다른 문자 집합. 연결(concatenation) 결과가 길어짐.
해결 방법
컬럼을 넓힌다: ALTER TABLE my_table MODIFY (my_column VARCHAR2(100)); 멀티바이트 내용에는 CHAR semantics를 사용한다: my_column VARCHAR2(100 CHAR). 긴 값을 줄여야 한다면 SUBSTR로 자른다. 오류 메시지에 실제 길이와 허용 길이가 나오므로 LENGTH/LENGTHB로 넘치는 레코드를 찾는다.
같은 데이터베이스의 다른 항목
- ORA-06550line/column PLS-... PL/SQL compilation error
- ORA-04068existing state of packages has been discarded
- ORA-01427single-row subquery returns more than one row
- ORA-30926unable to get a stable set of rows in the source tables
- ORA-08103object no longer exists
- ORA-01843not a valid month
- ORA-14400inserted partition key does not map to any partition