We are in the process of upgrading GG 12c to 19c and are facing an issue on the replicat side.
We have tables with unique indexes defined on nullable columns. It seems GoldenGate is not able to see those indexes.
During a replication the process is abended with the following error:
2020-03-30T14:45:39.591+0200 INFO OGG-06441 Oracle GoldenGate Delivery for Oracle, repviz.prm: Unique key <>for table <> cannot be used due to the inclusion of virtual columns, or user-defined datatypes, or extended long varchar columns, or function-based index columns.
The index is based on a varchar column with normal length.
After changing the column to not null the replicat is seing the index and able to process the row:
alter table <>modify (integration_id not null);
2020-03-30T14:48:52.709+0200 INFO OGG-06510 Oracle GoldenGate Delivery for Oracle, repviz.prm: Using the following key columns for target table <>: INTEGRATION_ID.
We can also use KEYCOLS (INTEGRATION_ID), but it seems a bit overhead. As we don't control the data model, we can't change the column to not null by default.
Any suggestions? Is this a change in GoldenGate 19c?
According the docs this should be OK:
First unique key alphanumerically with no virtual columns, no UDTs, no extended (32K) VARCHAR2/NVARCHAR2 columns, or no function-based columns, but can include nullable columns.