impdp TABLE_EXISTS_ACTION APPEND fail with unique constraint error
643116Jun 4 2008 — edited Jun 5 2008I have a customer that wants to be able to take a previous export of their database and import it back in order to restore items that were deleted. They made some changes that they do not want to lose to the current database so it must not remove any new entries nor alter any that were existing to a previous state. They only want to add in the entries that were removed.
From all that I have read this should be completely doable using "impdp" and the TABLE_EXISTS_ACTION=APPEND flag.
My exact call is:
impdp OPERATE/OPERATE DIRECTORY=dumpdir DUMPFILE=OperateData.DMP TABLE_EXISTS_ACTION=APPEND
However, I get unique constraint failures for every table and essentially nothing happens:
ORA-31693: Table data object "OPERATE"."SYSTEMEVENTS" failed to load/unload and
is being skipped due to error:
ORA-00001: unique constraint (OPERATE.SYS_C003015) violated
ORA-31693: Table data object "OPERATE"."PLAY_PAYLOAD" failed to load/unload and
is being skipped due to error:
ORA-00001: unique constraint (OPERATE.SYS_C002998) violated
ORA-31693: Table data object "OPERATE"."ACTIONS" failed to load/unload and is be
ing skipped due to error:
ORA-00001: unique constraint (OPERATE.SYS_C002948) violated
I have tried using the flags CONTENT=DATA_ONLY, and a few other options but I cannot get rid of the unique constraint failures.
The sad thing is I could do this with the old "imp" and it would give me unique constraint failures per row - which meant the entries that were missing would be added but the ones that already existed were skipped. It worked great except it took hours to do. What I need is to be able to do the same thing but with the faster "impdp".
Can anyone shed light on why this is not working how it is stated it should? I have read some postings that you cannot use it in connection with the PARALLEL flag and I am not.