Adsense Ad

Tuesday 2 January 2018

ORA-02298 cannot validate parent keys Tips

Question: During a Data Pump import (impdp) I am gett the error "ORA-02298 cannot validate parent keys." How do I fix and solve the ORA-02298 error?
Answer: The ORA-02298 cannot validate parent keys error occurs when an "orpharn" child row is added to the database. The oerr ito;ity nores:
ORA-02298 cannot validate parent keys
Cause: an alter table validating constraint failed because the table has child records.
Action: Obvious
There is no doubt on the ORA-02298 error; there are orphan rows that do not have a correpponding parent row (as enforced by a foreign ket constraint). By disabling and re-enabling the foreign key you can see the ORA-02298 error appear, and the ONLY solution is one of these actions:
1 - Add the proper parent rows
2 - delete the child orphan rows (not recommended because of loss of data integrity)
This error commonly occurs during a "live" Data Pump export (expdp), when there is time period between when the parent was exported and the child was exported.
This explains for the case where there are "missing" rows in the parent table, since the parent table was already exported when the child table export was started.
You can locate foreign "orphan rows" with SQL like this, something like:

select child_key from from child_table
where
child_key not in (select parent_key from parent_table);

The best solution for the ORA-02298 error is to use FLASHBACK_SCN or FLASHBACK_TIME parameter while re-exporing the data
This approach will export all of the rows that are consistent as of this SCN or TIME

No comments: