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);