본문으로 바로가기

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


한글이 깨질경우 보통은 데이터베이스의 언어 캐릭터셋과 

오라클 클라이언트의 캐릭터셋이 맞지 않아서 한글이 깨져보이는 경우가 대부분입니다.


아래 내용대로 조치를 해보시고, 한글이 깨지지 않도록 환경을 맞춰주세요.


- 오라클 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 기본값

KOREAN_KOREA.KO16MSWIN949



* 오라클 클라이언트의 캐릭터셋과 DB의 캐릭터셋이 다르다보니 

한글 인코딩에 문제가 있는지 

한글 비교나 한글 깨짐현상이 나타나기 때문에

오라클 클라이언트가 설치된 PC의 레지스트리에서 NLS_LANG 항목을 DB 언어 설정과 동일하게 맞춰주면 됩니다.


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


댓글을 달아 주세요