IT정보공유/DB

[ ORACLE ] 오라클 11g 데이터베이스 한글 깨짐 발생시 체크포인트

알지오™ 2019. 1. 19.

오라클 연결시 한글 출력, 무엇때문일까?

한글이 깨질경우 보통은 데이터베이스의 언어 캐릭터셋과 오라클 클라이언트의 캐릭터셋이 맞지 않아서 한글이 깨져보이는 경우가 대부분입니다. 아래 내용대로 조치를 해보시고, 한글이 깨지지 않도록 환경을 맞춰주세요.

 

- 오라클 DB 언어 설정값 확인은 아래의 쿼리를 통해 확인한다.

--

SELECT (SELECT value 
        FROM   nls_database_parameters 
        WHERE  parameter = 'NLS_LANGUAGE') 
       || '_' 
       || (SELECT value 
           FROM   nls_database_parameters 
           WHERE  parameter = 'NLS_TERRITORY') 
       || '.' 
       || (SELECT value 
           FROM   nls_database_parameters 
           WHERE  parameter = 'NLS_CHARACTERSET') 
FROM   dual 

--

 

 

Oracle DataBase 11g 기본 캐릭터셋

오라클 데이터베이스의 기본 문자형식은 AMERICAN_AMERICA.AL32UTF8 입니다.
이를 확인하기 위해서는 아래의 방법을 통해 체크해보면 됩니다.

 

- 오라클 클라이언트가 설치된 PC의 다음 레지스트리를 확인한다.

 

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ORACLE\OraClient11g_home1\NLS_LANG

 

(필자의 경우 윈도우10 64bit OS 에서 오라클 클라이언트를 설치했을 때, 위와 같은 레지스트리 경로가 잡혔으나,
다른 분들은 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 로 설정되어 있는 경우도 있다고 하니
레지스트리 검색기능으로 "NLS_LANG" 을 검색하는 것을 강추합니다.

 

 

한글 윈도우 10에 오라클 클라이언트 NLS_LANG 기본값

만약 한글 윈도우 10에 오라클 클라이언트를 설치했을 경우, NLS_LANG 환경변수 값은 KOREAN_KOREA.KO16MSWIN949 으로 셋팅이됩니다.

 

* 오라클 클라이언트의 캐릭터셋과 DB의 캐릭터셋이 다르다보니
한글 인코딩에 문제가 있는지 한글 비교나 한글 깨짐현상이 나타나기 때문에
오라클 클라이언트가 설치된 PC의 레지스트리에서 NLS_LANG 항목을 DB 언어 설정과 동일하게 맞춰주면 됩니다.

 

 

PS. oracle 10g 일 경우 NLS_LANG은 AMERICAN_AMERICA.KO16MSWIN949 으로 설정되기도 하네요.

댓글

💲 추천 글