Shareplex for Oracle
You try to enable a constraint but find that the DDL fails on the target due to ORA-02296 as the example below shows:
08/14/01 09:25 Error: sp_opst (for o.SID-o.SID queue QUENAME) Unexpected Oracle error: ORA-02296: cannot enable (.) - null values found.. Tablename: OWNER.TABLE_NAME
08/14/01 09:25 Process exited sp_opst (for o.SID-o.SID queue QUENAME) [pid = 5297] - exit(1)
Here is the description of ORA-02296:
ORA-02296 cannot enable (string.string) - null values found
Cause: An ALTER TABLE command with an ENABLE CONSTRAINT clause failed because the table contains values that do not satisfy the constraint.
Action: Make sure that all values in the table satisfy the constraint before issuing an ALTER TABLE command with an ENABLE CONSTRAINT clause
An example would be trying to make a column NOT NULL and though it succeeded on source, for some reason it did not succeed due to say, the column already has a NULL value in it on target table.
The solution lies in either ignoring the Oracle error by configuring oramsglist and SP_OPO_CONT_ON_ERR or by discarding the DDL using qview utility (with active involvement of Support). It may be noted that if the constraint are already validated on source, one need not enable them on target. The reason Post is failing due to ORA-02296 is that there may have been some DML activity on target that caused it to be out of sync with source, thereby the constraint could be successfully enabled on source but failed on target.