Skip to content
Home » Oracle » How to Resolve ORA-39325: TABLE_EXISTS_ACTION cannot be applied to

How to Resolve ORA-39325: TABLE_EXISTS_ACTION cannot be applied to

  • Oracle

ORA-39325

I found a table was not imported during data loading by impdp. After doing some investigation, I saw error ORA-39325 in the log.

ORA-39325: TABLE_EXISTS_ACTION cannot be applied to "ERPAPP2"."BILL_HIST".

ORA-39325 means that the table cannot be created because of name collision with an existing object, additionally, the object is not a table.

Basically, data pump should do the action on the table according to TABLE_EXISTS_ACTION once it found the table with the same name. In this case, the same name object is not a table, that's why TABLE_EXISTS_ACTION can't apply on this object.

Let's see what type of this object.

SQL> select object_type from all_objects where owner = 'ERPAPP2' and object_name = 'BILL_HIST';

OBJECT_TYPE
-----------------------
VIEW

OK, it's a VIEW. That's why data pump cannot REPLACE or TRUNCATE it.

Solution

To import the table successfully, we can drop or rename the blocking object. In this case, we rename it.

RENAME TO

To rename it, we shall connect to the database as the schema owner.

SQL> conn erpapp/password@orcl
Connected.
SQL> rename BILL_HIST to BILL_HIST_BAK;

Table renamed.

Please note that, RENAME statement can only apply on table, view, sequence and private synonym.

Let's check the object type after importing the table.

SQL> select object_type from all_objects where owner = 'ERPAPP2' and object_name = 'BILL_HIST';

OBJECT_TYPE
-----------------------
TABLE

We solved it.

Additionally, you may check all impdp parameters of all releases in a comparison table for sure.

Leave a Reply

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