[Oracle] ora-12899 열에 대한 값이 너무 큼
- 코딩/Oracle
- 2019. 8. 30.
ORA-12899 오류는 "value too large for column" 즉, 열에 대한 값이 너무 큰 경우 발생하는 오류입니다. 이 오류는 대개 INSERT나 UPDATE와 같은 DML 문장에서 발생합니다.
원인
- 열의 데이터 타입이 적합하지 않은 경우 : ORA-12899 오류는 열의 데이터 타입이 적합하지 않아서 발생할 수 있습니다. 예를 들어, VARCHAR2(10) 열에 20자 이상의 문자열을 INSERT나 UPDATE하려고 하면 ORA-12899 오류가 발생합니다.
- 열의 크기가 적합하지 않은 경우 : ORA-12899 오류는 열의 크기가 적합하지 않아서 발생할 수 있습니다. 예를 들어, VARCHAR2(10) 열에 20자 이상의 문자열을 INSERT나 UPDATE하려고 하면 ORA-12899 오류가 발생합니다.
- NLS_LENGTH_SEMANTICS 설정값이 적절하지 않은 경우 : NLS_LENGTH_SEMANTICS 설정값이 CHAR로 설정되어 있는 경우, 열의 크기는 문자 수에 따라 결정됩니다. 이 경우, 문자열이 열의 크기보다 크면 ORA-12899 오류가 발생합니다.
해결 방법
- 열의 데이터 타입을 적합한 타입으로 변경하거나, 열의 크기를 늘리는 방법
- 열의 크기를 늘리거나, 데이터를 적절히 축소하여 문제를 해결
- 열의 크기를 늘리거나, NLS_LENGTH_SEMANTICS 설정값을 바이트 수에 따라 결정되도록 설정하여 문제를 해결
select * from propS$ where NAME LIKE 'NLS_%';
현재의값 'AL32UTF8'을 'KO16KS5601'로 변경한다.
UPDATE PROPS$ SET VALUE$='AL32UTF8' WHERE NAME = 'NLS_CHARACTERSET';
오라클 재시작하면 될 수도 있으나,
오랔르을 재설치하여 캐릭터셋을 미리 설정 해둬도 좋다.
이블로그의 포스팅을 보면 캐릭터셋을 미리 설정 하는 방법이 있습니다.
'코딩 > Oracle' 카테고리의 다른 글
오라클 SQL UPDATE 문2 (다수데이터) (0) | 2019.09.08 |
---|---|
오라클 sql ORA-00933 : SQL COMMAND NOT PROPERLY ENDED (0) | 2019.09.01 |
오라클 SQL UPDATE 문 (0) | 2019.08.29 |
오라클 SQL LIKE문 (0) | 2019.08.29 |
[Oracle]오라클 ORA-01722 : 수치가 부적합합니다. (0) | 2019.08.29 |