오라클 캐릭터셋 변경

2010.07.30 17:22

조인상 조회 수:13472

원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어

Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
출처 : http://database.sarang.net/?inc=read&aid=8187&criteria=oracle&subcrit=&id=&limit=20&keyword=ORA-12701&page=1


+++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
 

데이타베이스의 CHARACTER SET은 데이타 딕셔너리 테이블인 sys.props$에

들어 있다

 

SQL>desc sys.props$

Name Null? Type

------------------------------- ----------------- ---------------

NAME NOT NULL VARCHAR2(30)

VALUE$ VARCHAR2(2000)

COMMENT$ VARCHAR2(2000)

 

SQL>column c1 format a30

SQL>select name c1, value$ c1 from sys.props$;

 

C1 C1

----------------------------- ------------------------------

DICT.BASE 2

NLS_LANGUAGE AMERICAN

NLS_TERRITORY AMERICA

NLS_CURRENCY $

NLS_ISO_CURRENCY AMERICA

NLS_NUMERIC_CHARACTERS .,

NLS_DATE_FORMAT DD-MON-YY

NLS_DATE_LANGUAGE AMERICAN

NLS_CHARACTERSET US7ASCII

NLS_SORT BINARY

GLOBAL_DB_NAME NLSV7.WORLD

 

여기서 NLS_CHARACTERSET에 현재 DB의 CHARACTER SET이 들어 있는데 이 값을

변경하여 DB의 CHARACTER SET을 변경할 수 있다. 여기서는 US7ASCII에서

KO16KSC5601 로 옮기는 경우를 알아보자.

 

우선 바꾸고자 하는 CHRACTER SET이 지원되는 지를 다음 명령으로 확인한다.

 

select convert('a','KO16KSC5601','US7ASCII') from dual;

 

만약 이 Select 문에서 ORA-01482 에러가 발생하면 지정한 CHARACTER SET이

지원되지 않는 경우이며 에러가 발생하지 않으면 CHARACTER SET을 변경할 수

있다.

 

작업을 하기전에는 만약을 위해서 DB 전체를 백업 받아두도록 한다.

CHARACTER SET 을 잘못 변경하면 DB 를 OPEN 할수가 없기 때문이다.

---------------------------------------------------------------

 

1. 다음의 Update문을 실행하여 CHARACTER SET을 변경한다.

 

UPDATE sys.props$

SET value$ = 'KO16KSC5601'

WHERE name = 'NLS_CHARACTERSET';

 

Update 시에 NLS_CHARACTERSET을 지원되지 않는 값으로 잘못 설정하거나

실수로 콘트롤 문자 같은 것이 들어가게 되면 DB가 Shutdown 된 다음에는

Startup 이 안 되므로 Update 후에 다음 명령으로 확인을 한 다음에 Commit을

하도록 한다.

 

select name, value$

from sys.props$

where value$ = 'KO16KSC5601';

 

Select가 제대로 출력되면 Commit 하고 Shutdown 했다가 Startup 하게 되면

새로운 CHARACTER SET 값을 갖게 된다. SELECT가 안 되면 ROLLBACK하고 UPDATE

부터 다시 하도록 한다.

 

2. 환경 변수 NLS_LANG 을 변경한다.

 

.profile ( or .cshrc) 에서

 

NLS_LANG=American_America.KO16KSC5601; export NLS_LANG

 

or

 

setenv NLS_LANG American_America.KO16KSC5601

번호 제목 글쓴이 날짜 조회 수
95 Master Note for Diagnosing ORA-4030 (Oracle Metalink) 조인상 2011.10.31 12644
94 성능분석을 위한 v$sysstat, v$sesstat, v$system_event 조회 조인상 2011.09.27 50431
93 Oracle 7.3.4 for Windows file 조인상 2011.08.31 11865
92 10G: ORA-6512 AT SYS.OLAPIHISTORYRETENTION [ID 266728.1] 조인상 2011.06.23 12332
91 Unix/Linux 에서 exp 동시에 gzip 으로 압축하기 조인상 2011.06.10 10177
90 오라클 11g - ADR/ADRCI : 새로운 alertlog 위치 조인상 2011.05.17 29695
89 오라클 10g 이상의 SGA영역 자동화(sga_target 파라미터) 조인상 2011.04.05 18416
88 HP-UX 에 오라클 설치 조인상 2011.02.18 15724
87 ORA-12705: Cannot access NLS data files or invalid environment specified 조인상 2011.01.01 16470
86 롤백세그먼트 부족에 대한 관리법 (ORA-01555) 조인상 2010.10.13 12438
85 imp 시의 속도향상을 위한 팁 조인상 2010.10.13 14013
84 오라클 패치후 각 컴퍼넌트들 버전 확인 쿼리 조인상 2010.10.05 46314
83 오라클 exp 유틸리티를 이용한 백업 조인상 2010.09.15 16890
82 time-based recovery 조인상 2010.08.24 7405
» 오라클 캐릭터셋 변경 조인상 2010.07.30 13472
80 windows용 오라클 온라인 백업 스크립트 file 조인상 2010.07.01 20119
79 오라클 8.1.7 for windows [5] file 조인상 2010.07.01 9337
78 ORA-01089 : 오라클 프로세스를 kill 한 후 로그인 못 할때 조인상 2010.06.20 19383
77 BUFFER HIT RATIO NOTES 조인상 2010.06.15 9924
76 ORA-01632 조인상 2010.05.13 8425
서버에 요청 중입니다. 잠시만 기다려 주십시오...