DataBase/Oracle

문자셋 확인 및 변경

griffy 2020. 9. 22. 11:27

[ 문자셋 확인 ]
SELECT name, value$
FROM sys.props$
WHERE name = 'NLS_CHARACTERSET';

SELECT name, value$
FROM sys.props$
WHERE name = 'NLS_NCHAR_CHARACTERSET';

[ 언어셋 확인 ]
SELECT name, value$
FROM sys.props$
WHERE name = 'NLS_LANGUAGE';

AL32UTF8

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

AL16UTF8

  • KO16KSC5601 :한글 완성형 2,350자지원 글자당 2바이트
  • KO16MSWIN949: KO16KSC5601+확장 8822자 지원, 글자당 2바이트
  • UTF8: 한글 11,172자 글자당 3바이트
  • 3바이트 => 2바이트 한글로 변경하는 방법update sys.props$ set value$='KO16MSWIN949' where name='NLS_CHARACTERSET';update sys.props$ set value$='AMERICAN_AMERICA.KO16MSWIN949' where name='NLS_LANGUAGE';
  • update sys.props$ set value$='KO16MSWIN949' where name='NLS_NCHAR_CHARACTERSET';
  • select * from nls_database_parameters;
  • 변경후 : 오라클 재부팅

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

    #> sqlplus 'sys / as sysdba'SQL>STARTUP MOUNT;SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;SQL>ALTER DATABASE OPEN;SQL>SHUTDOWN IMMEDIATE;
  • SQL>STARTUP;
  • SQL>ALTER DATABASE CHARACTER SET KO16MSWIN949;
  • SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
  • SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
  • SQL>SHUTDOWN IMMEDIATE;
  • #> /etc/init.d/oracle-xe restart