我在这件事上头疼了一天。我无法调用 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 程序。
当不从触发器调用时,这可以正常工作。
任何想法?