[ORACLE] 한글깨짐현상 문제해결방법

2014. 8. 13. 20:38 - Song's IT

오라클 데이터베이스에 한글저장 시 “????” 혹은 “옜옜”의 형태로 저장 및 출력될 시 문제해결 방법입니다.

이와 같은 문제의 원인은 오라클 SERVER와 CLIENT간의 NLS_LANG설정문제 때문입니다.

따라서 이 둘을 일치 시켜주어야 문제를 해결할 수 있습니다.

 

우선 바탕화면에서 Ctrl + R로 실행 창을 띄워준 후 regedit을 입력하여 레지스트리 편집기를 실행시켜 줍니다.


그리고 "HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\"의 하위 폴더로 찾아가 보시면 우측에 존재하는 NLS_LANG키설정을 변경해 주셔야 합니다.


더블 클릭을 하시면 키 값이 수정 가능합니다.

KOREAN_KOREA.KO16KSC5601에서 KOREAN_KOREA.KO16MSWIN949로 값을 변경한 후 레지스트리편집기를 종료해 줍니다.



이 후 다시 Ctrl + R로 실행창을 띄운 후 cmd를 입력해 커맨드 입력창을 실행시켜줍니다.

그 다음

sqlplus /nolog

conn /as sysdba;

update props$ set VALUE$='KO16MSWIN949' where name='NLS_CHARACTERSET';

update props$ set VALUE$='AMERICAN_AMERICA.KO16MSWIN949' where name='NLS_LANGUAGE';

commit;

를 차례로 입력해 줍니다.

말 그대로 오라클 데이터베이스의 Characterset을 호스트 시스템과 같게 해주는 것이지요.


각각의 작업이 완료되면 1 row affected라는 메시지를 보실 수 있을 것입니다.

이어서

shutdown immediate;

명령을 입력하여 데이터베이스 서비스를 종료시켜줍니다.

이는 데이터베이스를 언마운트 하는 작업이여서 약간의 시간이 지연될 수 있습니다.


그 다음

startup;

명령어를 입력해주시면 다시 오라클 서비스가 실행이 되는 것을 보실 수 있습니다.


 이어서

select name, value$ from sys.props$;

쿼리문을 입력시 아래와 같은 결과를 각각 확인할 수 있을 것입니다.

 NAME

 VALUE$

 NLS_LANGUAGE

 AMERICAN_AMERICA.KO16MSWIN949

 NLS_TERRITORY

 AMERICA

 NLS_CHARACTERSET

 KO16MSWIN949


이 후 INSERT문을 통해 정상적으로 한글문자가 DB에 저장되는 것을 확인하시면 되겠습니다.




'Database > Oracle' 카테고리의 다른 글

[ORACLE] CONCAT, ||  (0) 2014.08.20
[ORACLE] ORACLE-12505 Error 해결법  (1) 2014.08.16
[ORACLE] Import & Export  (1) 2014.08.13
[ORACLE] ORACLE 10g XE HTTP포트 변경  (0) 2014.08.13
[ORACLE] ORACLE 10g XE 설치 및 설정  (1) 2014.08.13

다른 카테고리의 글 목록

Database/Oracle 카테고리의 포스트를 톺아봅니다