프로젝트 진행중에 이상한 일이 생겨 곤란을 겪고 있어서 문의드립니다.
아시는 분들의 조언 부탁드립니다. 아..우선 저는 자바 프로그래머인지라
오라클에 대해서 깊이 알지는 못합니다. 그리고 지금 사용하는 DB도 제가
설정한게 아니라는걸 우선 말씀드립니다.
다름이 아니라 제가 짠 프로그램에서 오라클에 한글데이타를 입력하는 경우가
많은데 아시다시피 영문이야 1자당 1byte로 계산하고 한글은 2byte로 계산해
오라클내 테이블 구조나 컬럼당 사이즈등이 설계되어 있습니다.
그런데 계속 데이타 입력시 에러가 나서 처음엔 어떤 문제인지 찾질 못하다가
차분히 살펴보니 오라클 자체에서 한글 한자당 3바이트로 인식해 들어가고
있더군요..
select lengthb('가나다') from dual 이런식으로 해보면
값이 6이 아니라 9가 나온다는거죠...
그러니 varchar2(10)이렇게 잡힌 컬럼에는 원래 한글 5자라고 설계했던 부분이
실제로는 3자밖에 안들어가는 문제가 생기게 된거죠...
우선 컬럼크기를 늘리거나 해서 돌아가고는 있습니다만 이건 근본적인 해결은 아니죠
분명 오라클에 대한 설정등이 잘못된것 같은데 어떤 부분이 문제인지 저로선 잘
모르겠군요...
유닉스상에 오라클버젼 8.1.6입니다. 환경파일내의 NLS_LANG설정은
NLS_LANG American_America.KO16KSC5601 이런식으로 제대로 되어
있는듯 한데.... 설치시의 문제인가요...
짐작가시는분 답변 부탁드립니다.
|