오라클과 문자셋 :: ORACLE NLS Characterset
설치된 오라클의 문자셋 확인
[code]
select * from nls_database_parameters
where parameter = 'NLS_CHARACTERSET';
[/code]
어떤 문자셋을 써야하지?
현재 한글을 지원하는 캐릭터셋으로는 다음 네 가지가 있다. 오직 이 네 가지이다. 각각의 특색이 다르므로 유의해야 한다.
KO16KSC5601 : 완성형 한글 - 2350자의 한글, 4888자의 한자, 히라카나, 카타카나, 영문 및 기호.
KO16MSWIN949 : 확장 완성형 - KO16KSC5601을 그대로 포함하고 추가로 현대한글조합 가능한 8822자까지 표현.
UTF8/AL32UTF8 : 가변길이 한글표현에 최대 3바이트 (AL32UTF8은 6바이트)
유니코드는 잘 알려진 바와 같이 현대 한글 11172자를 모두 가나다 순으로 잘 정렬된 상태로 포함
오라클 서버의 문자셋 바꾸기
쉘에서
[code]
oracle 유저로긴 혹은 root로긴 후 su
sqlplus /nolog
conn /as sysdba; (system/manager)
update props$ set VALUE$='KO16MSWIN949' where name='NLS_CHARACTERSET';
commit;
shutdown immediate;(데이터베이스를 언마운트 하는작업이라 시간이 걸림.)
startup;
[/code]
예를 들어, 다음의 query를 수행한 결과가 다음과 같다면
select name, value$ from sys.props$;
NAME VALUE$
-------------------- ----------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSET KO16MSWIN949
NLS_LANGUAGE의 값을 AMERICAN -> AMERICAN_AMERICA.KO16MSWIN949로 설정.