본문 바로가기

취미

ora-12899 해결방법 참고하세요

ora-12899 해결방법에 대해서 설명드리겠습니다. ora-12899 : value too large for column 오류는 열에 대한 값이 너무 큼 오류인데, 보통 insert 하거나 update를 하면서 에러가 발생하는 경우가 많이 있습니다.

 

 

 

1. 컬럼사이즈를 확인하세요.

 

 

ora-12899 오류는 해당 테이블의 칼럼 사이즈 그리고 데이터의 사이즈를 비교해서 칼럼 사이즈가 작으면 키우고 반대로 데이터를 줄일 수 있으면 줄이면 해결됩니다. 이게 가장 일반적인 해결방안이 되겠습니다. 테이블 칼럼을 키우는 예제를 보여드리겠습니다.

 

CREATE TABLE Sample

    ......

    name varchar2(10) NOT NULL,

    ......

);

 

alter table Sample modify name varchar2(50);

 

이렇게 alter 를 사용해서 ora-12899 를 해결하실 수 있습니다.

 

 

2. 흔치 않은 경우 : 공백문제

 

 

ora-12899 오류는 대부분 1번에서 말씀드린 내용으로 해결이 가능합니다. 그런데 가끔 공백 때문에도 문제가 생기고는 하는데요. 아래 설명은 참고만 부탁드리겠습니다. 만약 1번으로 해결이 안 되면 아래 내용을 따라서 진행해보시기 바랍니다.

 

  • oracle에서 공백은 1바이트 space 키로 char(32) 인데요.
  • chr(49824) 2바이트로 입력이 된 경우가 있습니다.
  • char(49824)는 trim이 되지 않으며, replace 처리가 스페이스키로는 되지 않습니다.
  • 공백을 ' ' 를 복사해서 replace 처리를 해주시면 해결이 가능합니다.
  • REPLACE (CHR(49824), ' ', ' ') FROM ~ ; 
  • 위와 같이 공백 ' ' 을 리플레이스 처리해주시면 해결이 됩니다.

 

ora-12899 해결이 되셨는지 모르겠습니다. 대부분 1번에 설명드린 칼럼 사이즈와 불일치하는 경우가 대부분이니깐, 어렵지 않게 처리가 되실 것 같습니다. 2번의 경우도 참고하셔서, 꼭 한 번에 해결하셨으면 좋겠습니다. 이상 ora-12899 해결방법에 대해서 알아보았습니다.