我正在尝试将消息从Oracle队列中出队,但在设置dequeue_options时遇到了问题。我正在尝试将ENQ_TIME大于输入值(时间戳)的消息出队。我设法在没有参数或通过msgid或enq_tid的情况下将消息出队。我用过
dequeue_options.deq_condition := 'tab.enq_tid = ''' || i_enq_tid || ''''这是有效的。当我尝试用enq_time做同样的事情时,我得到了一个错误,没有消息。我尝试在运算符的两侧使用>符号和不同的to_char转换字符串,但无法正常工作。
请给我建议。
发布于 2014-09-23 20:28:32
也许你可以退出队列,保持MSGID,如果ENQ_TIME低于你的日期输入,那么在你的队列中使用上述MSGID将状态更新为0。
发布于 2014-09-24 21:34:11
解决方案是在队列表上使用游标来提取相关的msgid-s。然后通过msgid访问消息。然而,我有一种感觉,正确的deq_condition应该可以工作。一定有更好的办法。
https://stackoverflow.com/questions/25931613
复制相似问题