Oracle CharacterSET 변경Oracle CharacterSET 변경

Posted at 2013. 8. 30. 18:08 | Posted in DataBase
반응형

한글을 지원하는 캐릭터셋 
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까지 참조 

반응형

'DataBase' 카테고리의 다른 글

Oracle 9i 언어변경하는 방법  (0) 2013.08.30
Oracle - ALTER TABLE  (0) 2013.08.30
exp / imp 정리 및 실습  (0) 2013.08.30
오라클 테이블 락 ( Table lock  (0) 2013.08.30
오라클 현재 세션에 걸려있는 쿼리 보기  (0) 2013.08.30

//