我测试的Oracle AQ首次。我已成功地创建2000行测试刀片的成I创建的队列。

现在,我想清除这些了。因为我是自学的,我设定的到期时间是一个月。我不能等那么久。而且我不认为我应该只是从队列表中删除。

什么是做到这一点的最好方法是什么?

有帮助吗?

解决方案

可以使用DBMS_aqadm.purge_queue_table过程。


<强>解

在SQL看起来是这样的:

-- purge queue
DECLARE
 po_t dbms_aqadm.aq$_purge_options_t;
BEGIN
  dbms_aqadm.purge_queue_table('MY_QUEUE_TABLE', NULL, po_t);
END;

其他提示

<击>只需做删除队列上表

没关系,只是做了检查,并这不是右

  

Oracle流AQ不支持数据操纵语言(DML)操作队列表或相关联的索引编排表(IOT中),如果有的话。修改队列表的唯一支持的手段是通过提供的API的。队列表和IOT中可能变得不一致,因此有效地破坏了,如果DML操作对它们执行。


所以,你必须创建一个小的PL / SQL例程拉项目关闭。

使用dbms_aq包。从文档检查例如:出列消息。 向下滚动一点点,有一个完整的例子。

scroll top