0

我在这件事上头疼了一天。我无法调用 dbms_aq 包方法。这是我的代码。

PROCEDURE P_ENQUEUE(
  QUEUE_NAME IN VARCHAR2,
  PAYLOAD IN TYPE_RECORD
) AS 
 enqueue_options SYS.dbms_aq.enqueue_options_t;
 message_properties SYS.dbms_aq.message_properties_t;
 message_handle RAW(16);
 po_t SYS.dbms_aqadm.aq$_purge_options_t;
BEGIN

SYS.dbms_aqadm.purge_queue_table(QUEUE_NAME, NULL, po_t);
SYS.dbms_aq.enqueue(queue_name => QUEUE_NAME,
    enqueue_options => enqueue_options,
    message_properties => message_properties,
    payload => PAYLOAD,
    msgid => message_handle);
END;

我正在尝试从触发器调用此过程,并且我检查了它是否被正确调用。但不能调用 dbms_aqadm 和 dbms_aq 程序。

当不从触发器调用时,这可以正常工作。

任何想法?

4

0 回答 0