기타

Oracle import 시 character set 변경관련

by 김창휘 posted Dec 26, 2016

Oracle 개발환경 구축 시 고객사에서 받은 export binary file import 할 경우 character set 문제로 정상적으로 데이터로드가 되지 않는 경우가 있다.

 

이런경우 import하려는 Oracle instanceCharacter set을 확인하여 변경하여 load할 수 있도록 한다.

 

아래의 내용은 KO16KSC5601 CHARACTER SET 환경에서 받은 EXP받은 파일을 AL16UTF16 CHARACTER SET으로 IMP할 때 ORA-01461: can bind a LONG value only for insert into a LONG column 에러가 발생하여 조치한 내용을

중심으로 작성하였다.

 

주의할 점은 character set 변경에 의해 DB가 깨질 수 있으니 반드시 변경전에 DB Backup을 수행해야 함을 잊지 않아야 한다.

 

1. INSTANCE CHARACTERSET 확인

 

  SYSDBA 계정으로 로그인하여 아래의 QUERY를 수행한다 결과를 확인한다.

 

  select * from nls_database_parameters where parameter like '%CHARACTERSET%';

 

  일반적으로 개발용으로 설치할 경우 아래의 결과로 출력된다.

 

  NLS_CHARACTERSET               WE8MSWIN1252  <-  char/varchar type

 

  NLS_NCHAR_CHARACTERSET         AL16UTF16     <-  nchar/nvarchar type

 

 

 

2. CHARACTERSET 변경

 

   IMPORT시 발생되는 ERROR를 확인하여 동일 CHARACTERSET으로 변경.

   앞서 언급했듯이 KO16KSC5601 CHARACTER SET으로 EXP받은 파일을 AL16UTF16 CHARACTER SET으로 IMPORT할 경우 발생하는 경우라 ‘KO16KSC5601’로 변경한다.

  

   update sys.props$ set value$='KO16KSC5601' where name='NLS_CHARACTERSET';

  

   update sys.props$ set value$='KO16KSC5601' where name='NLS_NCHAR_CHARACTERSET';

  

 

3. DB Shutdown

 

   >shutdown immediate

  

 

4. CHARACTER SET 확인

 

select * from nls_database_parameters where parameter like '%CHARACTERSET%';


5. import 재 수행



Articles

1 2 3 4 5 6 7 8 9 10