GoldenGate

How to Resolve OGG-01168 Encountered an update for target table XXX

The REPLICAT stopped due to the following error.
2017-09-14 19:52:01  ERROR   OGG-01168  Encountered an update for target table HR.MAIN_TEAMS_RECRUIT, which has no unique key defined.  KEYCOLS can be used to define a key.  Use ALLOWNOOPUPDATES to process the update without applying it to the target database.  Use APPLYNOOPUPDATES to force the update to be applied using all columns in both the SET and WHERE clause.
Here is what Oracle Document says:
A no-op operation is one in which there is no effect on the target table. The following are some examples of how this can occur.
  • The source table has a column that does not exist in the target table, or it has a column that was excluded from replication (with a COLSEXCEPT clause). In either case, if that source column is updated, there will be no target column name to use in the SET clause within the Replicat SQL statement.
  • An update is made that sets a column to the same value as the current one. The database does not log the new value, because it did not change. However, Oracle GoldenGate captures the operation as a change record because the primary key was logged, but there is no column value for the SET clause in the Replicat SQL statement.
That is, you should make sure the table definitions on both sides are the same if you have no COLSEXCEPT before you add the parameter ALLOWNOOPUPDATES into REPLICAT. Otherwise, you should reload the table all over.

Leave a Reply

Your email address will not be published. Required fields are marked *