如何删除(丢弃)Oracle AQ 队列?

How to delete (drop) an Oracle AQ queue?

我希望删除一个 Oracle AQ 队列和与之关联的 table。

执行此操作需要哪些命令?

为了删除queue和与其关联的table,步骤为:

  1. 停止队列
  2. 放弃队列
  3. 放弃队列table(可选)

以下命令将删除队列 table。

BEGIN
  DBMS_AQADM.STOP_QUEUE(queue_name => 'QUEUE_NAME');
  DBMS_AQADM.DROP_QUEUE(queue_name => 'QUEUE_NAME');
  DBMS_AQADM.DROP_QUEUE_TABLE(queue_table => 'QUEUE_TABLE_NAME');
END;

不需要删除table,但执行此操作时通常会出现这种情况。