正在从Oracle Advanced Queue中清除仅存储的数据

dbf7pr2w  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(146)

我正在尝试清除例外,并且只清除Oracle高级队列中的例外。这就是我所拥有的。

DECLARE
    purge_options dbms_aqadm.aq$_purge_options_t;
BEGIN
  DBMS_AQADM.PURGE_QUEUE_TABLE(
    queue_table => 'HOLONET_Q_TAB',
    purge_condition => 'Q_NAME = ''AQ$_HOLONET_Q_TAB_E''',
    purge_options   => purge_options
  );
END;

字符串
但是,此代码会产生以下错误。

ORA-00604: error occurred at recursive SQL level 1
ORA-06512: at "SYS.DBMS_AQADM", line 2093
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 16139
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 16355
ORA-00904: "Q_NAME": invalid identifier
ORA-06512: at "SYS.DBMS_AQ_INV", line 1573
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_AQADM_SYSCALLS", line 1113
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 16326
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 16127
ORA-06512: at "SYS.DBMS_AQADM", line 2086
ORA-06512: at line 4
00604. 00000 -  "error occurred at recursive SQL level %s"
*Cause:    An error occurred while processing a recursive SQL statement
           (a statement applying to internal dictionary tables).
*Action:   If the situation described in the next error on the stack
           can be corrected, do so; otherwise contact Oracle Support.


我要怎么做才能让它工作?

elcex8rz

elcex8rz1#

我最终能够弄清楚它。正确的代码如下:

DECLARE
    purge_options dbms_aqadm.aq$_purge_options_t;
BEGIN
  DBMS_AQADM.PURGE_QUEUE_TABLE(
    queue_table => 'HOLONET_Q_TAB',
    purge_condition => 'qtview.QUEUE = ''AQ$_HOLONET_Q_TAB_E''',
    purge_options   => purge_options
  );
END;

字符串

相关问题