¾Æ·¡ Äõ¸® Á¶È¸½Ã µ¿ÀÏ Å¸ÀÔ¿¡ ´ëÇÏ¿© 2°³ ÀÌ»óÀÇ Ä³¸¯ÅͼÂÀÌ Á¶È¸µÇ´ÂÁö È®ÀÎ
select distinct(nls_charset_name(charsetid)) CHARACTERSET,
decode(type#, 1, decode(charsetform, 1, 'VARCHAR2', 2, 'NVARCHAR2','UNKOWN'),
9, decode(charsetform, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'),
96, decode(charsetform, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),
112, decode(charsetform, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN
from sys.col$ where charsetform in (1,2) and type# in (1, 9, 96, 112);
CHARACTERSET TYPES_USED_IN
----------------- -------------
WE8ISO8859P1 VARCHAR2
KO16KSC5601 VARCHAR2
KO16KSC5601 CHAR
WE8ISO8859P1 CHAR
AL16UTF16 NCLOB
KO16KSC5601 CLOB
AL16UTF16 NVARCHAR2
KO16KSC5601 NVARCHAR2
WE8ISO8859P1 CLOB
AL16UTF16 NCHAR
< ¹®Á¦ Á¶Ä¡ >
- Make sure the parallel_server parameter in INIT.ORA is set to false or it is not set at all.
parallel_server °ªÀÌ falseÀ̰ųª ¶Ç´Â ÇØ´ç ÆĶó¸ÞÅÍ°¡ ¾Æ¿¹ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê¾Æ¾ß ÇÔ.
SQL> show parameter parallel_server;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
parallel_server boolean FALSE
- Run the next script in SQLPLUS connected "as sysdba"
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> COL VALUE NEW_VALUE CHARSET
SELECT VALUE FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER='NLS_CHARACTERSET';
SQL> COL VALUE NEW_VALUE NCHARSET
SELECT VALUE FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
-----------------------------------------------------------------------------------------
( ¸¸¾à ¿©±â¼ ORA-12714: invalid national character set specified ¿¡·¯°¡ ¹ß»ýÇÑ´Ù¸é ¾Æ·¡ ÀÛ¾÷ ¼öÇà, ÇØ´ç ¿¡·¯°¡ ¹ß»ýÇÏ´Â ÀÌÀ¯´Â ¿À¶óŬ 9iÀÌÈÄ¿¡´Â NATIONAL CHARACTER SET Àº UTF8°ú AL16UTF16 ¸¸ Á¦°øÇϱ⠶§¹® )
¾Æ·¡ Äõ¸® Á¶È¸½Ã ÀÌ·±½ÄÀ¸·Î Áö¿øµÇÁö ¾Ê´Â °ªÀÌ Á¶È¸µÇ¸é
SELECT PARAMETER, VALUE FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER in ('NLS_NCHAR_CHARACTERSET','NLS_CHARACTERSET');
PARAMETER VALUE
---------------------------------- ---------------
NLS_CHARACTERSET KO16KSC5601
NLS_NCHAR_CHARACTERSET KO16KSC5601
UPDATE sys.props$ SET VALUE$='AL16UTF16' WHERE NAME='NLS_NCHAR_CHARACTERSET';
ÀÌÈÄ ´Ù½Ã ½ÇÇàÇϸé Á¤»óÀûÀ¸·Î µÉ °ÍÀÌ´Ù.
-----------------------------------------------------------------------------------------
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
-- yes, 2 times startup/shutdown . This is not a typo
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
´Ù½Ã ¾Æ·¡ Äõ¸®¸¦ Á¶È¸ÇßÀ» ¶§ ÁßøµÇ´Â ij¸¯ÅͼÂÀÌ Á¶È¸µÇÁö ¾ÊÀ¸¸é Á¤»ó
select distinct(nls_charset_name(charsetid)) CHARACTERSET,
decode(type#, 1, decode(charsetform, 1, 'VARCHAR2', 2, 'NVARCHAR2','UNKOWN'),
9, decode(charsetform, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'),
96, decode(charsetform, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),
112, decode(charsetform, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN
from sys.col$ where charsetform in (1,2) and type# in (1, 9, 96, 112);