1. 구DB DMP 파일에서 메타데이터(테이블 구조 등)만 신DB에 IMPORT
(exclude, remap_tablespace 등은 필요에 따라 생략)
$ impdp \'/ as sysdba\' directory=[DMP파일디렉토리] dumpfile=[DMP파일명] exclude=STATISTICS schemas=[대상스키마1, 대상스키마2, ...] remap_tablespace=%:[변경할테이블스페이스명] content=METADATA_ONLY;
2. BYTE 타입의 문자열을 CHAR 타입으로 바꿔주는 SQL문 추출 후, 해당 결과를 재실행하여, 각 테이블의 컬럼 타입 변경
SELECT 'ALTER TABLE ' || owner || '.' || table_name || ' MODIFY (' || column_name || ' ' || data_type || '(' || data_length || ' CHAR));' mod_sql
FROM dba_tab_columns c
WHERE owner IN ('대상스키마1', '대상스키마2', ...)
AND char_used = 'B'
AND NOT EXISTS (SELECT 1 FROM dba_views v WHERE v.owner = c.owner AND c.table_name = v.view_name)
ORDER BY owner, table_name, column_id;
3. 구DB DMP 파일에서 테이블 데이터만 신DB에 IMPORT
impdp \'/ as sysdba\' directory=[DMP파일디렉토리] dumpfile=[DMP파일명] exclude=STATISTICS schemas=[대상스키마1, 대상스키마2, ...] remap_tablespace=%:[변경할테이블스페이스명] content=DATA_ONLY;