출처http://secuinfo.tistory.com/entry/WEB-Server-8
오라클 데이터베이스에 한글저장 시 “????” 혹은 “옜옜”의 형태로 저장 및 출력될 시 문제해결 방법입니다.
이와 같은 문제의 원인은 오라클 SERVER와 CLIENT간의 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 |