【发布时间】:2017-03-25 14:52:57
【问题描述】:
我必须使用哪些命令来停止或启动 Oracle AQ 队列?
我需要停止队列以执行维护和分析,然后在分析完成后启动队列。
【问题讨论】:
我必须使用哪些命令来停止或启动 Oracle AQ 队列?
我需要停止队列以执行维护和分析,然后在分析完成后启动队列。
【问题讨论】:
你使用包DBMS_AQADM。
要STOP队列,命令如下所示:
BEGIN
DBMS_AQADM.STOP_QUEUE(queue_name => 'QUEUE_NAME');
END;
此过程的可选参数“等待”具有以下行为:
指定是否等待未完成的完成 交易。 TRUE 表示等待是否有任何未完成的 交易。在这种状态下,不允许新事务入队 到此队列或从该队列中出列。 FALSE 表示立即返回 成功或错误。
开始队列如下所示:
BEGIN
DBMS_AQADM.START_QUEUE(queue_name => 'QUEUE_NAME');
END;
您可能需要添加“SYS”作为包的前缀,具体取决于您的权限。
【讨论】:
我经常发现我只想停止出队。然后我必须像这样使用 START_QUEUE() 上的额外选项
execute DBMS_AQADM.STOP_QUEUE (queue_name => 'schema.queue', enqueue => FALSE, dequeue => TRUE);
【讨论】: