You cannot drop it directly with the drop table command, it will prompt error like this:
SQL> drop TABLE STREAMS_QUEUE_TABLE;
drop TABLE STREAMS_QUEUE_TABLE
*
ERROR at line 1:
ORA-24005: must use DBMS_AQADM.DROP_QUEUE_TABLE to drop queue tables
You must follow this steps for drop the queue table:
SQL> desc user_queues
Name Null? Type
----------------------------------------- -------- ----------------------------
NAME NOT NULL VARCHAR2(30)
QUEUE_TABLE NOT NULL VARCHAR2(30)
QID NOT NULL NUMBER
QUEUE_TYPE VARCHAR2(20)
MAX_RETRIES NUMBER
RETRY_DELAY NUMBER
ENQUEUE_ENABLED VARCHAR2(7)
DEQUEUE_ENABLED VARCHAR2(7)
RETENTION VARCHAR2(40)
USER_COMMENT VARCHAR2(200)
NETWORK_NAME VARCHAR2(512)
SQL> select name,queue_table from user_queues
2 ;
NAME QUEUE_TABLE
------------------------------ ------------------------------
AQ$_STREAMS_QUEUE_TABLE_E STREAMS_QUEUE_TABLE
STREAMS_QUEUE STREAMS_QUEUE_TABLE
AQ$_STREAMS_APPLY_QT_E STREAMS_APPLY_QT
STREAMS_APPLY_Q STREAMS_APPLY_QT
SQL> exec DBMS_AQADM.DROP_QUEUE_TABLE('YANGGUA.STREAMS_QUEUE_TABLE',true);
PL/SQL procedure successfully completed.
SQL> exec DBMS_AQADM.DROP_QUEUE_TABLE('YANGGUA.STREAMS_APPLY_QT',true);
PL/SQL procedure successfully completed.
SQL> select * from tab;
no rows selected
SQL>
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26706/viewspace-424270/ ,如需转载,请注明出处,否则将追究法律责任。