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 |