오라클(Oracle) 한글 깨짐이나 안내 오류 메시지가 영문으로 나오는경우

오라클(Oracle) 한글 깨짐이나 안내 오류 메시지가 영문으로 나오는경우

처음 오라클 설치 후 SELECT를 해보면 한글이 깨져서 '???' 로 나오거나
뷋넷옛 등의 알수 없는 글자로 조회되기도 합니다.
오라클 오류 메시지도 영문으로 나와 바로 알아보기 힘들게 되지요. 물론 쉬운 용어로 되어 있고
오라클 코드도 나와 있어서 어떤 문제인지 바로 알수 있지만 그래도 불편하기는 합니다.
우리글 한글이 있는데 말이죠~~ ^^

오라클 서버와 클라이언트 간의 NLS_LANG 설정이 필요한데요.
윈도우 환경 변수와  레지스트리 수정하는 방법으로 문제를 해결 할 수 있습니다.

 

1. 환경설정
환경설정에 NLS_LANG 추가해야 하는데요.
제어판 - 시스템을 선택하시거나 '윈도우키 + PauseBreak'키를 누르셔도 됩니다.
시스템 창이 뜨면 좌측 메뉴 중 고급 시스템 설정을 클릭합니다.

오라클(Oracle) 한글 깨짐이나 안내 오류 메시지가 영문으로 나오는경우


 

 

 

시스템 속성창이 뜨면 하단에 [환경 변수]버튼을 클릭합니다.

[환경 변수


 

 

 

환경 변수 창입니다. 윈도우 10과 이하 버전은 UI구성이 조금 다릅니다.

시스템 변수에 아래와 같이 NLS_LANG를 추가해야합니다.
새로 만들기 버튼을 클릭해주세요.

NLS_LANG를 추가해야


 

 

 

시스템 변수 편집 창이 뜨면
변수 이름에 NLS_LANG 를 입력 하시고
변수 값에  KOREAN_KOREA.KO16MSWIN949 를 입력합니다.


 KOREAN_KOREA.KO16MSWIN949


 

 

 

2. 레지스트리 수정

레지스트리 수정으로도 적용할 수 있는데요.
[윈도우키  + R] 키를 눌러 실행창을 열어주세요.
입력박스에 regedit 를 입력 후 엔터키를 눌러줍니다.


레지스트리 수정


 


레지스트리 편집기 창이 뜨면 아래 경로로 이동합니다

컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\Oracle

컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\Oracle


 

 


우측에 NLS_LANG 값이 있으면 더블클릭하시고 없으면 마우스 오른쪽 버튼을 클릭해서
메뉴가 뜨면 문자열 값을 선택합니다.

문자열 값을 선택


 

 

 

값 이름을 NLS_LANG로 수정 후 편집하기 위해 더블클릭합니다.
값 데이터에 KOREAN_KOREA.KO16MSWIN949를 입력하거나 기존값을 수정합니다.

 

 NLS_LANG로 수정 후 편집하기


 

 

3. SQL 쿼리
이제 윈도우키 +  R 키를 누르고 실행창이 뜨면 cmd를 입력 후 엔터키를 눌러
명령 프롬프트창을 띄웁니다.

이제 아래 내용을 입력해주세요

SQLPLUS /NOLOG

CONN /AS SYSDBA;

이제 아래 업데이트를 진행합니다.
오라클에 NLS_LANGUAGE 값을 설정값으로 동일하게 맞추게 하는겁니다.

update props$ set VALUE$='KO16MSWIN949' where name='NLS_CHARACTERSET';
update props$ set VALUE$='KOREAN_KOREA.KO16MSWIN949' where name='NLS_LANGUAGE';
commit;

업데이트가 돠면 아래 명얼어를 입력하여 오라클 DB를 종료시킵니다.
시간이 다소 걸릴 수 있으니 잠시 기다려주세요.

shutdown immediate;

 

이제 startup;을 입력해서 다시 시작합니다.

오라클이 다시 시작되면

NLS_LANGUAGE 값이 변경되었는지 쿼리를 실행해서 확인합니다.


select name, value$ from sys.props$;;

토드에서나 골덴에서는 아래와 같이 실행합니다.


SELECT  *
  FROM NLS_DATABASE_PARAMETERS
 WHERE PARAMETER IN ('NLS_CHARACTERSET','NLS_LANGUAGE');

NLS_LANGUAGE 값이 변경되었는지 쿼리를 실행

이상  오라클(Oracle) 한글 깨짐이나 안내 오류 메시지가 영문으로 나오는경우를 알아보았습니다.