Study

Oracle(오라클) Korean(한글) byte(바이트) 관련

메디츠 2024. 1. 21. 13:46
반응형

19년 11월 기준.

 

varchar2(10). 10byte. 한글 2byte 5글자.

lengthb 한글 3byte로 잡히는경우 문제.

SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET' or parameter ='NLS_NCHAR_CHARACTERSET'

AL32UTF8 한글 3바이트. AL16UTF8 한글 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

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;

 

반응형