Oracle AQ出列参数

时间:2014-09-19 10:17:48

标签: oracle plsql advanced-queuing

我正在尝试从Oracle队列中取消消息,并且在设置dequeue_options时遇到问题。我试图使ENQ_TIME大于输入值(时间戳)的消息出列。 我设法通过参数或msgid或enq_tid使消息出列。 我用了

dequeue_options.deq_condition := 'tab.enq_tid = ''' || i_enq_tid || ''''

这是有效的。 当我尝试用enq_time做同样的事情时,我得到一个没有消息的错误。 我试过用>操作符两侧的符号和不同的to_char转换字符串,无法使其工作。

请告知。

2 个答案:

答案 0 :(得分:0)

也许您可以出列,保持MSGID并且如果ENQ_TIME低于您的日期输入,则使用您队列中的所述MSGID将状态更新为0。

答案 1 :(得分:0)

解决方案是使用队列表上的游标来提取相关的msgid-s。然后通过msgid访问消息。 但是我觉得正确的deq_condition应该有效。必须有更好的方法。