헤르메스 LIFE

[Oracle] NLS_LANG CharacterSet 변경 본문

Database

[Oracle] NLS_LANG CharacterSet 변경

헤르메스의날개 2012. 11. 4. 16:47
728x90

원문 : http://joke00.tistory.com/176


Oracle import / export 시에 캐릭터 셋 오류가 났다.
그 바람에 import 할 DB 의 언어를 변경해 주었다.

자, 이제 다음과 같은 작업을 해 봅시다! ^-^




1. Sqlplus 로 들어간다~! (Oracle 툴이야 토드 , 오렌지 등 뭐 다양하지만 기본인 cmd 창을 띄어 sqlplus 로 접속하여 하였다)
(DBA 권한을 가진 자나 Sys 계정으로 접속 합니다 )

2. 현재의 CHARACTERSET 을 확인 합니다.


D:\>sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on 수 12월 1 09:14:34 2010
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

사용자명 입력: sys
암호 입력:
다음에 접속됨:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

SQL> select * from nls_database_parameters where parameter like '%CHAR%' ;

PARAMETER
------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------

NLS_NUMERIC_CHARACTERS
.,

NLS_CHARACTERSET
AL32UTF8

NLS_NCHAR_CONV_EXCP
FALSE


PARAMETER
------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------

NLS_NCHAR_CHARACTERSET
AL16UTF16



3. DB 를 Shutdown 시키고 mount 로 시작 합니다.

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

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



4. 시스템 상태를 변경 합니다 


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 KO16MSWIN949;

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


5. 다시 DB 를 Shutdown 시켰다가 startup 합니다.
6. 시스템이 제대로 변경 되었는지 NLS_CHRACTERSET 을 확인합니다.


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

Total System Global Area  805306368 bytes
Fixed Size                  1289996 bytes
Variable Size             209715444 bytes
Database Buffers          591396864 bytes
Redo Buffers                2904064 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SQL> select * from nls_database_parameters where parameter like '%CHAR%';

PARAMETER
------------------------------
VALUE
--------------------------------------------------------------------------------

NLS_NUMERIC_CHARACTERS
.,

NLS_CHARACTERSET
KO16MSWIN949

NLS_NCHAR_CONV_EXCP
FALSE


PARAMETER
------------------------------
VALUE
--------------------------------------------------------------------------------

NLS_NCHAR_CHARACTERSET
AL16UTF16


위에서 설정한 대로 다음과 같이 NLS_CHARACTERSET 이 변경이 되었네요! ^-^

자, 이제 imp 하시면 됩니다.


728x90