Character Set상의 중복 또는 오류 때문에 일어나는 현상입니다.

Export시 호환이 되는 Character Set으로 하지 않아 중복현상이 일어나는 경우가 있습니다.


우선,

실행 > cmd 입력

sqlplus “/as sysdba"

를 입력해 SQLPLUS를 실행시킨 후 아래의 Query를 실행합니다.


현재 Oracle의 Charset을 확인하는 Query입니다.


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       

CHAR

KO16KSC5601       

CHAR

WE8ISO8859P1      

NCLOB

AL16UTF16           

CLOB

KO16KSC5601       

NVARCHAR2

AL16UTF16           

NVARCHAR2

KO16KSC5601       

CLOB

AL16UTF16           

NCHAR


NVARCHAR2 의 Characterset이 중복되어 잡혀있는 것이 핵심입니다.


만약, 위의 표와같이 중복된 것이 있다면 아래의 SQL구문을 순차적으로 실행하시면 되겠습니다.


실행 > cmd 입력

SQL> sqlplus /nolog

SQL> conn /as sysdba

SQL> shutdown immediate;

를 입력해 봅니다.


만약 Error발생시

shutdown abort;

를 입력해 봅니다.


그래도 Error가 난다면

실행 > cmd 입력

sqlplus “/as sysdba" 혹은 sqlplus /nolog 입력

conn sys/pass as sysdba

를 입력한뒤

shutdown immediate; shutdown abort;

를 입력합니다.


이어

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;

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP;

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP;



여기까지 실행 시 다시 처음에 CharacterSet확인 Query를 실행시키면 아래와 같이 중복제거 된 결과를 볼 수 있습니다.

CHARACTERSET  

TYPES_USED_IN

KO16KSC5601       

VARCHAR2

KO16KSC5601       

CHAR

KO16KSC5601       

CLOB

AL16UTF16           

NCLOB

AL16UTF16           

NVARCHAR2

AL16UTF16           

NCHAR


'Database > Oracle' 카테고리의 다른 글

[ORACLE] CONCAT, ||  (0) 2014.08.20
[ORACLE] ORACLE-12505 Error 해결법  (1) 2014.08.16
[ORACLE] 한글깨짐현상 문제해결방법  (0) 2014.08.13
[ORACLE] Import & Export  (1) 2014.08.13
[ORACLE] ORACLE 10g XE HTTP포트 변경  (0) 2014.08.13

다른 카테고리의 글 목록

Database/Oracle 카테고리의 포스트를 톺아봅니다