홈 · 개발 참고자료

개발 참고자료

오라클 XE 케릭터셋 변경하기...

작성자
왕희복
작성일
2014-12-10
조회
10605
분류
오라클
1) SYS 계정으로 접근합니다.
2) 다음과 같이 Data Dictionary 를 검색합니다.
sql> select * from v$nls_parameters ;


3) 바꾸어야 할 문자셋과 언어셋을 확인한 후 다음과 같은 명령어로 Update 를 합니다.


4) sql>update sys.props$ set value$ = 'KO16KSC5601' where name = 'NLS_CHARACTERSET';
sql>update sys.props$ set value$ = 'KO16KSC5601' where name = 'NLS_NCHAR_CHARACTERSET';


5) sql>update sys.props$ set value$ = 'AMERICAN_AMERICA.KO16KSC5601' where name = 'NLS_LANGUAGE';
6) sql>COMMIT;


7) DB 를 Shotdown 한 후 다시 startup 시킵니다.


8) 변경 사항을 확인하기 위하여 2)번과정을 반복하여 결과를 확인합니다.



9) Linux 의 경우 설치할 때 지정 해 주었던 .bash_profile 파일에서 Oracle 언어 환경변수를 아래와


같이 변경합니다.
export NLS_LANG = AMERICAN_AMERICA.KO16KSC5601


10) Windows 사용자의 경우 Registry 중


HKEY_LOCAL_MACHINE -> SOFTWARE -> HOME0 -> NLS_LANG 을
AMERICAN_AMERICA.KO16KSC5601로 수정한후 Rebooting 을 하면 됩니다.


위와 같은 방법으로 문자셋과 언어셋을 바꿀 수 있습니다.

도움이 되셨으면 "


/***************************************************/


위에 한거로만 하면 프로시져가 안열림 ㅡ,,ㅡ


ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-553: 알 수 없는 문자 집합 이름입니다
위 오류 발생....




Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\Seo>sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on 월 1월 17 11:38:44 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

사용자명 입력: sys
암호 입력:

다음에 접속됨:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

SQL> shutdown immediate;
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.
SQL> startup mount;
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area 805306368 bytes
Fixed Size 1289996 bytes
Variable Size 239075572 bytes
Database Buffers 562036736 bytes
Redo Buffers 2904064 bytes
데이터베이스가 마운트되었습니다.

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> select name, value$ from sys.props$
2 where name=upper('nls_language') or name=upper('nls_territory')
3 ;

NAME
------------------------------
VALUE$
--------------------------------------------------------------------------------

NLS_LANGUAGE
AMERICAN.AMERICA.KO16KSC5601

NLS_TERRITORY
AMERICA

SQL> col value new_value charset
SQL> select value from nls_database_parameters where parameter=upper('nls_characterset');
VALUE
--------------------------------------------------------------------------------
KO16KSC5601

SQL> col value new_value ncharset
SQL> select value from nls_database_parameters where parameter=upper('nls_nchar_characterset');

VALUE
--------------------------------------------------------------------------------
KO16KSC5601

SQL> alter database character set internal_use &charset;
구 1: alter database character set internal_use &charset
신 1: alter database character set internal_use KO16KSC5601

데이타베이스가 변경되었습니다.

SQL> alter database character set internal_use &ncharset;
구 1: alter database character set internal_use &ncharset
신 1: alter database character set internal_use KO16KSC5601

데이타베이스가 변경되었습니다.

SQL> shutdown immediate;
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.

SQL> startup;
ORACLE 인스턴스가 시작되었습니다.
Total System Global Area 805306368 bytes
Fixed Size 1289996 bytes
Variable Size 239075572 bytes
Database Buffers 562036736 bytes
Redo Buffers 2904064 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.

SQL> shutdown immediate;
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.

SQL> startup;
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area 805306368 bytes
Fixed Size 1289996 bytes
Variable Size 239075572 bytes
Database Buffers 562036736 bytes
Redo Buffers 2904064 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SQL>