Implicit DDL
User-generated DDL operations can generate implicit DDL operations. For example, the following statement generates two distinct DDL operations.
CREATE TABLE customers (custID number, name varchar2(50), address varchar2(75), address2 varchar2(75), city varchar2(50), state (varchar2(2), zip number, contact varchar2(50), areacode number(3), phone number(7), primary key (custID));
The first (explicit) DDL operation is the CREATE TABLE
statement itself.
The second DDL operation is an implicit CREATE UNIQUE INDEX
statement that creates the index for the primary key. This operation is generated by the database engine, not a user application.
Guidelines for Filtering Implicit DDL
How to filter implicit DDL depends on the mechanism that you are using to filter DDL. See Filtering DDL Replication for more information.
-
When the
DDL
parameter is used to filter DDL operations, Oracle GoldenGate filters out any implicit DDL by default, because the explicit DDL will generate the implicit DDL on the target. For example, the target database will create the appropriate index when theCREATE TABLE
statement in the preceding example is applied by Replicat. -
-
If your filtering rules exclude the explicit DDL from being propagated, you must also create a rule to exclude the implicit DDL. For example, if you exclude the
CREATE TABLE
statement in the following example, but do not exclude the implicitCREATE UNIQUE INDEX
statement, the target database will try to create the index on a non-existent table.CREATE TABLE customers (custID number, name varchar2(50), address varchar2(75), address2 varchar2(75), city varchar2(50), state (varchar2(2), zip number, contact varchar2(50), areacode number(3), phone number(7), primary key (custID));
-
If your filtering rules permit the propagation of the explicit DDL, you do not need to exclude the implicit DDL. It will be handled correctly by Oracle GoldenGate and the target database.
-