Overview
오래된 시스템에는 KO16MSWIN949, JA16SJIS 등 레거시 문자셋으로 저장된 데이터가 존재하며, 선언된 NLS 설정과 실제 저장 인코딩이 다른 경우도 많습니다. 잘못 변환하면 문자가 깨져 이관 후 복구가 어렵습니다.
Datatrans는 Source 문자 데이터를 hexadecimal byte로 직접 읽어 실제 저장 인코딩을 정확히 지정·변환합니다. 변환 오류가 발생하면 해당 작업만 오류로 격리하고 처리 가능한 다른 테이블은 계속 진행합니다.
What You'll Accomplish
선언 문자셋과 실제 저장 인코딩 불일치 대응
KO16MSWIN949, AL32UTF8 등 14종 문자셋 지원
CHAR/VARCHAR2/NCHAR/NCLOB/CLOB 컬럼 지원
문자 변환 오류 격리 및 나머지 테이블 지속 처리
Instructions
1
전체 대상 문자셋 변환 이관
charset_hex=ALL로 선택된 모든 테이블의 문자 데이터를 hexadecimal byte로 읽어 지정한 인코딩으로 변환합니다. 지원 컬럼은 CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, NCLOB입니다.
bash
datatrans source=SRC_USER/password@host:1521/SRCDB \
target=TGT_USER/password@host:1521/TGTDB \
schemas=LEGACY \
charset_hex=ALL \
charset_hex_encoding=KO16MSWIN949 \
degree=4 \
table_action=APPEND \
jobname=CHARSET_CONV 2
특정 테이블만 변환
목록으로 지정한 테이블에만 문자셋 변환을 적용합니다. 실제 저장 byte 인코딩이 테이블마다 다른 경우 유용합니다.
bash
datatrans source=SRC_USER/password@host:1521/SRCDB \
target=TGT_USER/password@host:1521/TGTDB \
tables=LEGACY.CUSTOMER,LEGACY.ORDERS \
charset_hex=LEGACY.CUSTOMER,LEGACY.ORDERS \
charset_hex_encoding=JA16SJIS \
degree=4 \
jobname=CHARSET_CONV_PART 3
변환 오류 확인
잘못된 Source byte나 타겟에서 표현할 수 없는 문자가 발견되면 해당 작업만 오류로 기록되고 다른 테이블은 계속 처리됩니다.
bash
datatrans
# DATATRANS> STATUS=CHARSET_CONV How It Works
1
문자셋 진단
대상 테이블의 실제 저장 인코딩 확인
2
변환 설정
charset_hex 대상 및 인코딩 지정
3
병렬 변환
hex byte 기반 문자셋 변환 이관
4
오류 확인
변환 오류 테이블 검토 및 조치