Oracle(오라클) Korean(한글) byte(바이트) 관련
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;