Document Type | Troubleshooting
Category | Migration
Applicable Product Versions | 5SP1FS01, 5SP1FS02, 5SP1FS03, 5SP1FS04, 5SP1FS06, 6FS01, 6FS02, 6FS03, 6FS04, 6FS05, 6FS06, 6FS07, 6FS07PS, 7FS01, 7FS02, 7FS02PS
Document Number | TMITS003
Issue
Note
Utility: table_migrator
Version: T-Up_20240927_win.zipThe process was conducted in the above environment.
Data INSERT
Inserts '', NULL, and ' ' data into each row of a CUBRID table.
* Empty string ('') data is treated as string in CUBRID but as NULL in TIBERO.
INSERT INTO MIG_TEST1 VALUES('DCT001','FM001','');
INSERT INTO MIG_TEST1 VALUES('DCT002','FM002',NULL);
INSERT INTO MIG_TEST1 VALUES('DCT003','FM003',' ');
Executing table_migrator
Run CUBRID TO TIBERO table_migrator using the INSERT_ZERO_LENGTH_STRING_AS_NULL=N option.
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
Result
NULL data with a length value of NULL is also migrated as ' ' (space).
Example: NVL2(C3, 'NOTNULL', 'NULL')
Example: NVL2(C3, 'NOTNULL', 'NULL')
| Data | Expected Result | Actual Result |
|---|---|---|
| '' | NOTNULL | NOTNULL |
| NULL | NULL | NOTNULL |
| ' ' | NOTNULL | NOTNULL |
Cause
The original purpose of the INSERT_ZERO_STRING_AS_NULL option was to prevent data with empty strings ('') in the source from being converted to NULL when inserted into Tibero.
However, the problem arose because it also included functionality that changed data that was NULL in the source to a non-NULL value.
Solutions
Use T-UP versions from T-up_20241029_win.zip or later, where the functionality has been modified so that NULL data remains NULL during migration.