DS's『 행복합시다 』

Carpe Programming/oracle

[oracle] 문자 설정 변경

nolite 2012. 9. 11. 18:02

1. exp 할때

KO16MSWIN949 문자 설정과 AL16UTF16 NCHAR 문자 설정에서 엑스포트가 종료되었습니다
서버는 KO16KSC5601 문자 집합을 사용합니다 (문자집합 변환이 가능합니다)
이 부분을 유심히 봐둔다
 
~~~문자 설정  : NLS_LANG
 
~~~NCHAR 문자 설정 : NLS_NCHAR_CHARACTERSET
 
서버는 ~~~ 문자 집합 : NLS_CHARACTERSET
 
내 컴터에서 문자셋 확인 후
 
select parameter, value from nls_database_parameters where parameter like '%CHAR%';
 
exp한 컴퓨터의 문자셋과 똑같이 설정한다.

SQL> conn /as sysdba
연결되었습니다.

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

 
SQL> startup mount;
ORACLE 인스턴스가 시작되었습니다.
 
데이터베이스가 마운트되었습니다.

 
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 원하는NLS_CHARCTERSET;
alter database character set UTF8 -->에러가 난다면 강제로 변환(아래줄)
*
1행에 오류:
ORA-12712: 새로운 문자 집합은 이전 문자 집합의 대집합이어야 합니다
 

SQL> alter database character set internal_use 원하는NLS_CHARCTERSET;
 데이타베이스가 변경되었습니다.
  
 
SQL> update sys.props$ set value$='원하는NLS_CHARCTERSET' where name='NLS_CHARACTERSET';
 1 행이 갱신되었습니다.
  
 
SQL> update sys.props$ set value$='원하는NLS_NCHAR_CHARACTERSET' where name='NLS_NCHAR_CHARACTERSET';
SQL> commit;
SQL>shutdown immediate
 
SQL>startup
 
SQL> exit
 
c:> set NLS_LANG=KOREAN_KOREA.원하는 NLS_LANG
 
그 다음에 imp 실시

 

[참고] - http://blog.naver.com/PostView.nhn?blogId=joypheonix&logNo=100055772375

 

728x90