[오라클]Characterset 변경
한글을 지원하는 캐릭터셋
1.KO16KSC5601
2.KO16MSWIN949
3.UTF8
4.AL32UTF8
A. 작업 전 만약을 위해 DB전체를 백업 받아둔다. character set 을 잘못 변경하면 DB를 open 할수 없을 수 있다.
B. 오라클 캐릭터셋 확인쿼리
SELECT parameter,value FROM nls_database_parameters WHERE parameter like '%CHAR%';
--------------------------------------
C. 아래는 OTN에서 발췌한 내용
8i(AMERICAN_AMERICA.US7ASCII)는 version 8.1.6 이상이라고 가정하겠습니다. 아래의 내용 중의 일부분은 Oracle database release 8.1.6 이상에서만 적용될 수 있습니다.
기본 작업 절차
--------------
(1) CLOB data에 대한 unloading/exporting.
(2) 8i(AMERICAN_AMERICA.US7ASCII)에서 "ALTER DATABASE CHARACTER SET" command set을 통한 8i(AMERICAN_AMERICA.KO16KSC5601)로의 변환.
(3) 8i(AMERICAN_AMERICA.KO16KSC5601)에서 NLS_LANG 환경변수 변경(KOREAN_KOREA.KO16KSC5601)을 통한 8i(KOREAN_KOREA.KO16KSC5601)로의 변환.
(4) 8i(KOREAN_KOREA.KO16KSC5601)에서 exporting 후 9i(KOREAN_KOREA.KO16KSC5601)에서 importing.
(5) CLOB data에 대한 loading/importing.
과정(2)의 세부 절차
------------------
$ sqlplus /nolog
SQL> conn sys/pw 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 KO16KSC5601;
SQL> alter database national character set KO16KSC5601;
SQL> shutdown immediate
SQL> startup open
*
ERROR at line 1:
ORA-12716: Cannot ALTER DATABASE CHARACTER SET when CLOB data exists
## 에러가 발생할 경우 아래 스크립트로 실행한다.
SQL> alter database character set internal_use ko16ksc5601;
CF) DB내의 CLOB 찾기
CLOB 또는 NCHAR Datatype의 컬럼들을 export 받고
CLOB, NCHAR이 포함된 Table을 Drop하고
Alter database character set ... 하고
다시 Import하라고 되어 있는데 별 효용없는것 같음.
sys, system으로 접속하여
SELECT *
FROM dba_lobs
Partitioning했다면 DBA_PART_LOBS까지 참조
'01.오라클 > 002.DB 마이그레이션' 카테고리의 다른 글
[오라클]MySQL Vs. Oracle (0) | 2013.04.19 |
---|---|
[오라클]system tablespace rename (0) | 2013.02.23 |
[오라클]Full export / import (0) | 2013.02.20 |
[오라클]Undo Tablespace 변경 (0) | 2012.12.19 |
[오라클]Voting Disk 이관 (0) | 2012.12.19 |