본문으로 바로가기

1) 캐릭터셋 확인

SELECT *

  FROM nls_database_parameters

WHERE parameter = 'NLS_CHARACTERSET'

       or parameter = 'NLS_NCHAR_CHARACTERSET'

 


AL32UTF8 

-  한글 한자당 3바이트

- AL32UTF8: 한글 11,172자이며 UTF8과 다른점은 내셔널 캐릭터셋으로 설정이 불가능


AL16UTF8 

- KO16KSC5601 :한글 완성형 2,350자지원 글자당 2바이트

- KO16MSWIN949: KO16KSC5601+확장 8822자 지원, 글자당 2바이트

- UTF8: 한글 11,172자 글자당 3바이트


* 3바이트 => 2바이트 한글로 변경하는 방법 

 select * from nls_database_parameters;

 update sys.props$ set value$='KO16MSWIN949' where name='NLS_CHARACTERSET'; 

 update sys.props$ set value$='KO16MSWIN949' where name='NLS_NCHAR_CHARACTERSET';

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


* 변경후 : 오라클 재부팅

 #> /etc/init.d/oracle-xe restart

 # DATA Base CharSet 변경 (이걸안하면 sqlgate 같은 gui 클라이언트 에서 스키마 보기가 안됨)

 #> sqlplus 'sys / as sysdba'

 SQL>SHUTDOWN IMMEDIATE;

 SQL>STARTUP MOUNT;

 SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

 SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

 SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

 SQL>ALTER DATABASE OPEN;

 SQL>ALTER DATABASE CHARACTER SET KO16MSWIN949;

 SQL>SHUTDOWN IMMEDIATE;

 SQL>STARTUP;

[출처] - https://gompangyi.tistory.com/122