Oracle - 캐릭터셋 변경 (문자셋, CHARACTER)

현재 캐릭터 셋 확인.
SYS.PROPS$ 에서 NAME에 CHAR나 NLS가 포함되는 행의 VALUE$를 확인한다.

SELECT NAME,VALUE$
FROM SYS.PROPS$
WHERE NAME ='NLS_LANGUAGE'
       OR  NAME ='NLS_TERRITORY'
       OR  NAME ='NLS_CHARACTERSET'
       OR  NAME ='NLS_NCHAR_CHARACTERSET';

변경 방법.
캐릭터 셋 변경하는 부분에 internal_use 이라는 옵션이 있다.
이 옵션을 지정해 주지 않으면 기존 캐릭터셋의 상위 셋으로 밖에 변환이 안된는 에러 메세지가 출력된다.

ERROR at line 1:
ORA-12712: new character set must be a superset of old character set

물론 이 옵션을 사용해서 에러를 무시한다면 기존의 캐릭터형 데이터가 손상될 확률은 지극히 높다.

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 internal_use SETAL32UTF8;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

by overdose | 2008/10/31 11:48 | ORACLE | 트랙백 | 덧글(0)

트랙백 주소 : http://devideby0.egloos.com/tb/2118867
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶