create or replace PACKAGE BODY <%= queue_name %>_queue IS
PROCEDURE enqueue_message(payload VARCHAR2) IS msg <%= payload_name %> := <%= payload_name %>(NULL); msg_id RAW(16); enqueue_options DBMS_AQ.ENQUEUE_OPTIONS_T; message_properties DBMS_AQ.MESSAGE_PROPERTIES_T; BEGIN msg.json := payload; message_properties.priority := 1; -- give all messages same priority DBMS_AQ.ENQUEUE( queue_name => '<%= [schema, queue_name].compact.join(".") %>', enqueue_options => enqueue_options, message_properties => message_properties, payload => msg, msgid => msg_id ); END enqueue_message; PROCEDURE dequeue_message(payload OUT VARCHAR2) IS msg <%= payload_name %> := <%= payload_name %>(NULL); msg_id RAW(16); dequeue_options DBMS_AQ.DEQUEUE_OPTIONS_T; message_properties DBMS_AQ.MESSAGE_PROPERTIES_T; BEGIN DBMS_AQ.DEQUEUE( queue_name => '<%= [schema, queue_name].compact.join(".") %>', dequeue_options => dequeue_options, message_properties => message_properties, payload => msg, msgid => msg_id ); payload := msg.json; END dequeue_message;
END <%= queue_name %>_queue;