ORA-42017: interim table of an AQ table should not be an AQ table

文档解释

ORA-42017: interim table of an AQ table should not be an AQ table

Cause: An attempt was made to create an AQ table as an interim table of an online redefined AQ table.

Action: Ensure that the interim table is not created as an AQ table.

ORA-42017:AQ表的临时表不应该是AQ表

错误说明:

ORA-42017信息指出无法在临时表中定义Advanced Queuing(AQ)表。简单地说,不能在临时表中创建和使用AQ功能/应用。这个信息主要是当数据库应用尝试给临时表定义AQ特性时发出。

常见案例

这种错误的常见情况是使用DDL语句拒绝给临时表增加AQ功能/应用时发生的。比如,创建表时使用以下语句:

CREATE TABLE TMP_TABLE OF AQ_TABLE;

该语句将创建一个基于AQ表的临时表,但是该操作将导致ORA-42017信息。

解决方法:

当出现此错误时,为了解决该问题,应避免定义AQ表到临时表。相反,应将AQ功能留给专用表,即将表定义为一般表即可,例如:

CREATE TABLE TMP_TABLE;

这将创建普通的表,同时也可以为表增加AQ特性,如:

BEGIN

dbms_aqadm.create_queue_table (

queue_table => ‘MY_QUEUE_TABLE’);

END;

此外,也可以使用相应的事务语句,将AQ特性增加到指定的表中。

你可能感兴趣的