데이터에 한글이 들어가게 하려면 어떻게 하면 될까요? 아래 문제 해결 했습니다. 참고하세요. 1 1 2,632

by 한국초코우유 [2013.12.18 20:38:32]


'아래에서 두번이나 데이터에 한글이 들어가게 하려면 어떻게 하면 될까요?'에 대해 질문 했습니다.


그래서 많은 고수분들의 의견을 수렴하고, 공부한 결과 오라클 실습 초기 설정을 끝냈습니다.


저의 블로그에 블로깅 했으니, 오라클 실습을 하시려는 분들 있으면, 참고해 주세요.


http://blog.naver.com/sintaehun1/50185253352


오라클 설치 하는데 참고한 문서대로 오라클 설치를 하니 character set 설정이 'AL32UTF8'로 되어 있었습니다.

 

하지만 오라클 실습에서 사용하는 스크립트는 'KO16MSWIN949'를 기반으로 되어 있어 계속 테이블에 데이터가 컬럼의 크기가 안 맞아 삽입되지 않았습니다.

 

위 둘의 차이는 'AL32UTF8'는 한글이 3바이트, 'KO16MSWIN949'는 한글이 2바이트 입니다.

 

그리고 윈도우에서 인스턴트 클라이언트로 가상머신 리눅스상에 오라클에 데이터를 집어 넣으면 조회시 한글이 ??로 보이는 현상 역시 해결 했습니다.

 

NLS_LANG 설정 때문이었습니다. 윈도우에서 사용하는 문자셋이 'KO16MSWIN949'이므로 NLS_LANG를 환경변수로 설정하여 'KO16MSWIN949' 대입하였더니 해결 되었습니다.

 

고수님들 덕분에 문제 해결 했습니다. 감사합니다.


by Oracler [2013.12.19 19:53:32]
데이터베이스의 캐릭터셋이 클라이언트 컴퓨터의 캐릭터셋을 포함할 수 있으면 Oracle Net 에 의해 문자가 자동을 변환됩니다.
예를 들어 데이터베이스의 캐릭터셋이 AL32UTF8이고 클라이언트(윈도우) 프로그램의 캐릭터셋이 KO16MSWIN949면 클라이언트 프로그램이 이해하고 화면에 표시하는 한글의 캐릭터셋은 KO16MSWIN949이지만 데이터베이스로 한글을 보내면 자동으로 AL32UTF8 캐릭터셋의 한글로 변환이 되어서 저장됩니다. 그 한글을 데이터베이스에서 읽으면 AL32UTF8 한글이 KO16MSWIN949 한글로 변환이 되는 겁니다.
참고로 데이터베이스의 캐릭터셋은 데이터베이스 생성시 지정해 주는 것이고 클라이언트 쪽 캐릭터셋은 NLS_LANG 환경변수로 설정해 줍니다. 추가로 윈도우의 경우 레지스트리로 NLS_LANG 환경변수를 설정할 수도 있습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입