기술 정보
home
채널 소개
home

table_migrator 사용 시 INSERT_ZERO_LENGTH_STRING_AS_NULL 옵션

문서 유형
장애 해결
분야
마이그레이션
키워드
t-up
table migrator
적용 제품 버전
5SP1FS01
5SP1FS02
5SP1FS03
5SP1FS04
5SP1FS06
6FS01
6FS02
6FS03
6FS04
6FS05
6FS06
6FS07
6FS07PS
7FS01
7FS02
7FS02PS
1 more property

현상

참고
유틸리티 : table_migrator
버전 : T-Up_20240927_win.zip
위의 환경에서 진행되었습니다.

데이터 INSERT

CUBRID 테이블의 각 row에 '', NULL, ' ' 데이터를 INSERT합니다.
* 빈문자열('') 데이터를 CUBRID 에서는 string으로 TIBERO 에서는 NULL로 취급합니다.
INSERT INTO MIG_TEST1 VALUES('DCT001','FM001',''); INSERT INTO MIG_TEST1 VALUES('DCT002','FM002',NULL); INSERT INTO MIG_TEST1 VALUES('DCT003','FM003',' ');
SQL
복사

table_migrator 수행

INSERT_ZERO_LENGTH_STRING_AS_NULL=N 옵션을 사용하여 CUBRID TO TIBERO table_migrator를 수행합니다.
PROPERTY_FILE=migrator.properties.cubrid SOURCE_TYPE=generic SOURCE_DRIVER=cubrid.jdbc.driver.CUBRIDDriver SOURCE_URL=jdbc:cubrid:192.168.1.188:33000:demodb::: SOURCE_USER=dba SOURCE_PASSWORD=************ SOURCE_SCHEMA=PUBLIC SOURCE_SCHEMAORIGN=PUBLIC SOURCE_TABLE=mig_test1 SELECT_SUBPARTITION= BATCH_THRESHOLD=128 EXTRACT_PARALLEL=N EXTRACT_THREAD_COUNT=1 SOURCE_TABLE_DEDUPLICATE=N USE_PARALLEL_HINT=N PARALLEL_HINT_CNT=-1 USE_OBJECT_PARALLEL_HINT=N TARGET_TYPE=DEFAULT TARGET_DRIVER=com.m.internal.jdbc.MInternalDriver TARGET_URL=jdbc:internal:thin:@localhost:7629:tibero7 TARGET_USER=sys TARGET_PASSWORD=************ TARGET_SCHEMA=tibero TARGET_TABLE=mig_test1 COMMIT_SIZE=-1 INDEX_DISABLE=N SELECT_FETCH_SIZE=1024 SELECT_AS_BYTE=N DB_FILE_MULTIBLOCK_READ_COUNT=-1 INSERT_METHOD=dpl INSERT_BATCH=Y INSERT_PARALLEL=N INSERT_THREAD_COUNT=1 INSERT_ZERO_LENGTH_STRING_AS_NULL=N DPL_LOG_UNIT=500 LOG_FILE_NAME=tableMigrator.log LOG_LEVEL=INFO CHECK_COLUMN_METADATA=N SOURCE_OBJECT_NAME_CASE_TYPE=UPPER TARGET_OBJECT_NAME_CASE_TYPE=UPPER
SQL
복사

결과

길이 값이 NULL인 NULL 데이터도 ' '으로 이관됩니다. 예시 : NVL2(C3, 'NOTNULL', 'NULL')
데이터
기대 결과
실제 결과
'’
NOTNULL
NOTNULL
NULL
NULL
NOTNULL
' ‘
NOTNULL
NOTNULL

원인

기존 INSERT_ZERO_STRING_AS_NULL 옵션의 목적은 Source에서 빈 문자열('')이었던 데이터가 Tibero에서 입력 시 NULL로 변환되지 않도록 방지하는 것이었습니다.
하지만, Source에서 NULL이었던 데이터를 NULL이 아닌 값으로 변경하는 기능까지 포함되면서 문제가 발생하였습니다.

해결

NULL인 데이터가 그대로 NULL로 이관되도록 기능이 수정된 T-up_20241029_win.zip 이후 버전의 T-UP을 사용해 합니다.