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特性增加到指定的表中。