오라클 XE 케릭터셋 변경하기...
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>
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>