Oracle 개발환경 구축 시 고객사에서 받은 export binary file을 import 할 경우 character set 문제로 정상적으로 데이터로드가 되지 않는 경우가 있다.
이런경우 import하려는 Oracle instance의 Character 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 재 수행