ORA-12899: value too large for column


( ORA-12899: "유저명"."테이블명"."컬럼명" 열에 대한 값이 너무 큼(실제: m, 최대값: n)  )


ORA-12899는 INSERT를 한다거나 UPDATE를 하다가 다음과 같은 에러가 발생하는 경우가 있다.


1. 실제로 최대값보다 실제 입력된 값이 커서 발생하는 경우이다.


2. 오라클의 문자셋 NLS_CHARACTERSET의 설정의 문제다 ( 캐릭터셋(charset)의 문제 -> UTF-8 과 ASCII의 Byte 수가 달라 각 3Byte, 2Byte, 1Byte를 계산하다 문제가 생긴 경우)



이번에 포스팅 할 경우는 공백이다.


쉽게 발생하는 케이스가 아니라서,


보통 위의 경우라면 해결방법이 인터넷에 많이 올라와있지만 공백의 경우 찾기도 쉽지 않고 설마 공백이 문제가 될 거라 생각하지 않았다.


대부분 실제 입력 값이 크지 않고 입력되는 값이 모두 영어인 경우라면 다음을 확인해보면 될 것 같다.


3. 공백값 chr(49824)


오라클 공백값이 기존 1byte의 스페이스 키를 입력하여 나온 chr(32) 이다.


하지만 에러가 나는 공백값은 아닌 chr(49824)는 2Byte이다. (공백인듯 공백아닌 공백같은)


두 공백을 비교하면


 chr(32)

 chr(49824)

 1Byte

 trim가능, replace 처리가 스페이스 키로 만든 공백으로 처리 가능

 2Byte 

 trim불가, replace 처리가 스페이스 키로 만든 공백으로는 불가능


가장 쉽게 해결하는 방법은 해당 공백을 복사하여 replace해주는 방법이다.


SELECT REPLACE(CHR(49824), ' ', ' ') FROM DUAL;


이 공백문자를 만들기도 힘든데 어떻게 들어왔는지는 모르겠다.

'데이터베이스 > Oracle' 카테고리의 다른 글

ORA-01460: unimplemented or unreasonable conversion requested  (0) 2015.10.19
TEMPORARY TABLE  (0) 2015.09.25

프로젝트를 하다보면 A라는 개발자는 Tab으로 소스의 라인을 맞추고 B라는 개발자는 Spaces으로 또 C개발자는 Tab과 Spaces를 섞어서 라인을 맞춘다.


이런경우 제 3자 혹은 A개발자와 B개발자 그리고 C개발자의 소스를 공유하였을 때 서로 다른 라인으로 또는 라인이 맞지 않는 뒤죽박죽인 소스를 보는 경우가 많은데, 이러한 가독성이 없는 프로그램 소스는 개발의 효율을 상당히 조하시키는 요인이 된다.


소스 파일을 공유하고 서로 보기 좋게 코딩하는 방법중 가장 기본적인 방법인 이클립스에서 Tab을 Spaces로 변경되어 사용하는 방법이다.


이클립스 설정은 다음과 같이 설정하면 된다. (캡쳐는 없음)


1. 이클립스 상단 메뉴들 중 [Window] -> [Preferences] 를 차례로 클릭하여 설정 팝업을 띄운다.


< 텍스트 파일 설정 >

2. 설정 팝업에서 [General] -> [Editors] -> [Text Editors] 를 차례로 클릭하고 우측의 "Insert spaces for tabs" 체크박스를 체크한다.


< 자바 파일 설정 >

3. (2)위 동일하게 [Java] -> [Code Style] -> [Formatter] 를 차례로 클릭하고 우측의 "Edit" 버튼을 클릭한다.


4. [Tab policy] 항목을 "Tab only" 에서 "Spaces only" 로 바꾸고, 상단의 profile name을 적절하게 변경한다. (Ex.Eclipse Tab-to-Space)


< XML 파일 설정 >

5. (2)와 동일하게 [XML] -> [XML Files] -> [Editor] 에서 "Indent using spaces" 라디오버튼을 체크한다.


6. 적용을 하면 설정 완료된다. (설정을 완료하였다 하더라고 이미 작성된 파일들에는 적용되지 않으므로 프로젝트 시작전에 미리 세팅하는 것이 좋을듯 하다.)


위의 설정은 웹 개발자들이 자주 사용하는 텍스트 파일, 자바파일, xml파일을 동일하게 적용하기 위함이다.


위와 같이 적용이 끝난 후 코딩을 하면 Tab을 눌렀을 경우 Spaces가 4칸의 효과를 확인 할 수 있다.


이렇게 개발자들이 설정을 하고 나면 Tab을 사용하던 Spaces를 사용하던간에 동일한 Spaces를 이용하여 라인을 맞춘것으로 보이기 때문에 가독성에 있어서 효율적인 소스코드를 볼 수 있다.

'Tools > Eclipse' 카테고리의 다른 글

이클립스 단축키  (0) 2015.10.16
이클립스 설치 및 한글버전 설정  (0) 2015.10.13
속도개선 설정하기  (0) 2015.09.25

+ Recent posts