MAP Exists for Base Object, But Not Derived Object
If there is a MAP
statement for the base object, but not for the derived object, the result is a schema based on the mapping that matches the derived object name. Derived objects are only mapped if the MAPDERIVED
option is enabled, which is also the default option.
For example, consider the following:
Extract (source)
Table hr.*;
Replicat (target)
MAP hr.*, TARGET hrBackup.*;
Assume the following source DDL statement:
CREATE INDEX hr.indexPayrollDate ON TABLE hr.Payroll (payDate);
The CREATE INDEX
statement is executed by Replicat on the target as follows:
CREATE INDEX hrBackup.indexPayrollDate ON TABLE hrBackup.Payroll (payDate);
In this example, the mapping is such that it matches the derived object name because of which the derived object schema is changed from hr
to hrBackup
.
Here’s another example, where there is no mapping that matches the derived object name so the derived object name remains the same.
Extract (source)
Table hr.tab*;
Replicat (target)
MAP hr.tab*, TARGET hrBackup.*;
Assume the following source DDL statement:
CREATE INDEX hr.indexPayrollDate ON TABLE hr.tabPayroll (payDate);
The CREATE INDEX
statement is executed by Replicat on the target as follows:
CREATE INDEX hr.indexPayrollDate ON TABLE hrBackup.tabPayroll (payDate);