출처http://secuinfo.tistory.com/entry/WEB-Server-8


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

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

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

우선 바탕화면에서 win + 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에 저장되는 것을 확인하시면 되겠습니다.

 

'데이터베이스 > Oracle' 카테고리의 다른 글

Oracle 오라클10g 암호화방법  (0) 2015.10.06
Oracle sys 계정로그인 & 비밀번호 변경  (0) 2015.10.06
Oracle 시퀀스  (0) 2015.09.23
Oracle 코드에 들어가는 드라이버,URL  (0) 2015.08.25
Oracle 계정 Unlock  (0) 2015.08.24
블로그 이미지

왕왕왕왕

,