오라클 데이터베이스에 한글저장 시 “????” 혹은 “옜옜”의 형태로 저장 및 출력될 시 문제해결 방법입니다.
이와 같은 문제의 원인은 오라클 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 |