블로그 이미지
frucyan

카테고리

분류 전체보기 (65)
Maven (0)
JavaScript (0)
Toad (3)
Mint Linux (0)
tomcat (0)
Java (0)
JSP/ Servlet (0)
Oracle (3)
Linux/Unix (39)
Tips/Tech (9)
Cafe24 운영 (5)
문제 해결 (1)
환경 설정 (3)
Total234,465
Today4
Yesterday15

오라클을 사용하다 보면 서버와 클라이언트간의 캐릭터셋이 맞지 않아 한글이 깨지는 현상을 종종 볼 수 있다.

오라클은 어떤 캐릭터셋을 사용하든지 관계없이 서버에 설정된 캐릭터셋과 클라이언트에 설정된 캐릭터셋이 일치하면

정상적으로 문자열을 읽어 온다.

1. 서버에 설정된 캐릭터셋 확인 방법
SELECT NAME, VALUE$ FROM SYS.PROPS$

위와같이 쿼리를 하면 서버의 환경설정값들이 가져오는데 NLS_LANGUAGE, NLS_TERRITORY, NLS_CHARACTERSET을

확인하면 된다. 한글을 정상적으로 표시하려면 KOREAN_KOREA.KO16MSWIN949 또는 KOREAN_KOREA.KO16KSC5601을

사용해야 하며 권장사항은 윈도우의 기본 한글 문자셋인 KO16MSWIN949이다.

하지만 간혹 오래된 시스템인 경우 AMRECAN_AMERICA.US7ASCII를 사용하고 있는데 한글을 표현할 수는 있지만 보장하진

않기 때문에 오라클사에서도 권장하지 않고 있다.


2. 서버의 캐릭터셋 변경 방법(예 AMRICAN_AMRICA.US7ASCII -> KOREAN_KOREA.KO16MSWIN949)
1. SYSDBA권한으로 오라클 로그인(그렇지 않을경우 권한문제로 캐릭터셋 업데이트 불가)

2. UPDATE SYS.PROPS$ SET VALUE$='KOREAN' WHERE NAME='NLS_LANGUAGE';

3. UPDATE SYS.RPOPS$ SET VALUE$='KOREA' WHERE NAME='NLS_TERRITORY';

4. UPDATE SYS.PROPS$ SET VALUE$='KO16MSWIN949' WHERE NAME='NLS_CHARACTERSET';

5. COMMIT;

6. SHUTDOWN IMMEDIATE

7. STARTUP

8. 레지스트리편집기에서 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\오라클홈이름\NLS_LANG의 값을
KOREAN_KOREA.KO16MSWIN949로 변경


3. 클라이언트의 캐릭터셋 변경 방법
서버와 마찬가지로 레지스트리 편집기에서 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\오라클홈이름\NLS_LANG의 값을 KOREAN_KOREA.KO16MSWIN949로 변경
저작자 표시 비영리 변경 금지
신고

'Oracle' 카테고리의 다른 글

계정 생성  (0) 2012.01.16
오라클 캐릭터셋 확인및 변경  (0) 2012.01.16
오라클 시작 종료 간편하게 하기  (0) 2009.03.03
Posted by frucyan

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

티스토리 툴바