【问题标题】:DBMS_AQADM.PURGE_QUEUE_TABLE with the error ORA-01001: invalid cursor and ORA-06512: at "SYS.DBMS_AQ_INV"DBMS_AQADM.PURGE_QUEUE_TABLE 错误 ORA-01001: 无效游标和 ORA-06512: 在 "SYS.DBMS_AQ_INV"
【发布时间】:2020-05-02 06:59:30
【问题描述】:

在尝试使用用户 APPS(WF_BPEL_QTAB 队列的所有者)手动执行以下命令时,正在发生通知的错误。 我们做了所有必要的研究,队列没有索引(正如一些解决方案所建议的那样)。

命令:

declare
  l_purge_options dbms_aqadm.aq$_purge_options_t;
begin
l_purge_options.Block := False;
DBMS_AQADM.PURGE_QUEUE_TABLE(queue_table => 'APPS.WF_BPEL_QTAB'
                            ,purge_condition => 'ENQ_TIME < trunc(sysdate) - 3
                            ,purge_options => l_purge_options);
end;

错误:

ORA-00604: error occurred at recursive SQL level 1
ORA-01001: invalid cursor
ORA-06512: at "SYS.DBMS_AQ_INV", line 208
ORA-00918: column ambiguously defined
ORA-06512: at "SYS.DBMS_AQADM", line 1668
ORA-06512: at line 5

【问题讨论】:

    标签: oracle queue purge


    【解决方案1】:

    当使用队列表中的条件时,您需要使用别名“qtview”。因此

    declare
      l_purge_options dbms_aqadm.aq$_purge_options_t;
    begin
      l_purge_options.Block := False;
      DBMS_AQADM.PURGE_QUEUE_TABLE(queue_table => 'APPS.WF_BPEL_QTAB'
                                  ,purge_condition => 'qtview.ENQ_TIME < trunc(sysdate) - 3
                                  ,purge_options => l_purge_options);
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-09
      • 2021-11-26
      • 2021-05-09
      • 2020-03-10
      • 1970-01-01
      • 1970-01-01
      • 2020-08-23
      • 1970-01-01
      相关资源
      最近更新 更多