1

我正在尝试将通用 pl/sql 写入已经入队的(重新)入队消息(以任何状态存在于队列表中)。

在队列上启用出队时它工作正常,因此我可以先在浏览模式下出队,以便DBMS_AQ.message_properties_t从现有消息中填充和加载。但是,当 dequeue 被禁用时,我怎样才能获取那些呢?

  DBMS_AQ.enqueue(
       queue_name          => fine,
       enqueue_options     => fine,
       message_properties  => how from existing message,
       payload             => how from existing message 
                                     (probably can select, not big deal),
       msgid               => fine);

谢谢

4

2 回答 2

1

在 Oracle 的网站上有一个很好的例子来说明如何做到这一点:http: //download.oracle.com/docs/cd/B10500_01/appdev.920/a96587/apexampl.htm

基本上,您可以以非破坏性方式“出队”(出于浏览目的的 IE 出队)。因为您没有出队,所以消息仍然保留在原地。

于 2011-05-09T18:18:45.263 回答
1

无论是在浏览模式还是删除模式下,您都必须启用DEQUEUING才能收到消息:

begin
   sys.dbms_aqadm.start_queue('[QUEUE_NAME]', true, true);
end;
/
于 2014-09-23T13:40:33.860 回答