我正在尝试将通用pl / sql写入已经入队的(重新)入队消息(在任何状态下出现在队列表中)。
在队列上启用了dequeue时,它可以正常工作,因此我可以先在浏览模式下出列,以便填充DBMS_AQ.message_properties_t
并从现有消息加载。但是,当出列队列被禁用时,如何获取那些?
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);
由于
答案 0 :(得分:1)
有一个很好的例子,说明如何在Oracle网站上执行此操作: http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96587/apexampl.htm
基本上你可以以非破坏性的方式“出队”(IE出于浏览目的而出列)。因为你没有出列,但信息仍然存在。
答案 1 :(得分:1)
您已启用DEQUEUING以获取消息,无论是浏览还是删除模式:
begin
sys.dbms_aqadm.start_queue('[QUEUE_NAME]', true, true);
end;
/