Impdp导入报queue_table too long失败解决方法

Posted ggykx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Impdp导入报queue_table too long失败解决方法相关的知识,希望对你有一定的参考价值。

用生产库64位LINUX导入windows测试库。

中添加TABLE_EXISTS_ACTION=respace重建已有数据。

报错queue_table too long,按照下文方法,删除表或者使用truncate参数重建即可。

 

----------------------------------------------------------------------------------------------------------------

转至https://blog.51cto.com/929044991/1148614

在从32位的10.2.0.2版本的生产数据库导入到64位11.2.0.1的版本中,在IMPDP导入新库的时候碰到如下的错误代码:

Applies to:
Oracle Server - Enterprise Edition - Version 9.2.0.8 to 11.1.0.7 [Release 9.2 to 11.1]
Information in this document applies to any platform.
***Checked for relevance on 17-May-2012*** Problem Statement

Datapump Import fails with the following errors:

ORA-39126: Worker unexpected fatal error in KUPW$WORKER.PROCESS_TABLE_EXISTS_ACTION
[TABLE:"APPLSYS"."AQ$_FND_CP_TM_RET_AQTBL_T"]
ORA-24019: identifier for QUEUE_TABLE too long, should not be greater than 24 characters
ORA-00955: name is already used by an existing object

Error ORA-24019 is self-explanatory: the queue table name is 25 characters long, whereas only 24 are allowed.

There are restrictions in regards to the names of the queue_tables: 
Oracle Streams Advanced Queuing User‘s Guide and Reference 10g Release 2 (10.2) 
Chapter 8 Oracle Streams AQ Administrative Interface 

DBMS_AQADM.CREATE_QUEUE_TABLE --> Queue table names must not be longer than 24 characters. 
If you attempt to create a queue table with a longer name, error ORA-24019 results 
 

Solution 

In normal case the way to resolve this is to either exclude this queue from being imported and then manually create it afterwards, or recreate the queue in the source database with a valid name (<= 24 characters) and export and import into the destination database.

But since it is followed by ORA-00955: name is already used by an existing object,then in this case, the first thing to check would be whether the interested queue_tables do have messages or are empty. 
If the queue_tables are empty then prior to import they would need to be dropped as follow:

 At the TARGET Database: 

1) Drop queue_table with force parameter set to TRUE,the queue table name is  FND_CP_TM_RET_AQTBL as shown:

connect / as sysdba 
Begin 
dbms_aqadm.drop_queue_table (‘APPLSYS.FND_CP_TM_RET_AQTBL‘,TRUE); 
End; 
/

 

2) Re-run the IMPDP 

OR 

Use the TABLE_EXISTS_ACTION=TRUNCATE option - this deletes existing rows and then loads rows from the source 

以上是关于Impdp导入报queue_table too long失败解决方法的主要内容,如果未能解决你的问题,请参考以下文章

centos 6.6下oracle使用impdp导入数据库报错!

XTTS跨平台迁移impdp导入元数据报ORA-29349

Linux下通过impdp向Oracle导入数据库报错:无法读取要读取的存储文件

Oracle 数据库 IMPDP 导入报错, ORA-39083 ORA-04052 ORA-12154 求解决方案

expdp/impdp 数据泵导入导出

Oracle 数据库 10g 使用 impdp导入出错