EXECUTE DBMS_AQADM.CREATE_QUEUE_TABLE(
Queue_table => '&1'||'.MARK_APPLY_QUEUE_TAB',
Queue_payload_type => '&1'||'.MARK_TYPE_EVENT',
storage_clause => 'PCTFREE 10 PCTUSED 40 INITRANS 32 MAXTRANS 255 TABLESPACE MARK_'||'&1'||'_DATA00',
Sort_list => 'ENQ_TIME',
Message_grouping => 1,
Compatible => '8.1.3');
EXECUTE DBMS_AQADM.CREATE_QUEUE(
Queue_name => '&1'||'.MARK_APPLY_QUEUE',
Queue_table => '&1'||'.MARK_APPLY_QUEUE_TAB',
Queue_type => 0,
Max_retries => 5,
Retry_delay => 0,
dependency_tracking => FALSE);
EXECUTE dbms_aqadm.start_queue (
queue_name => '&1'||'.MARK_APPLY_QUEUE',
enqueue => TRUE ,
dequeue => TRUE);
create or replace
TYPE "MARK_TYPE_EVENT"
AS
OBJECT
(
ACCT_ID VARCHAR2(32),
SECURITY_ID VARCHAR2(32),
EVENT_CODE VARCHAR2(4),
EVENT_TIME TIMESTAMP );
sql_code NUMBER;
sql_msg VARCHAR2(132);
queue_options DBMS_AQ.DEQUEUE_OPTIONS_T;
message_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
message_id RAW(16);
event MARK_TYPE_EVENT;
rid varchar2(20);
no_messages exception;
PRAGMA EXCEPTION_INIT (no_messages, -25228);
DBMS_AQ.DEQUEUE(
queue_name => 'MARK_APPLY_QUEUE',
dequeue_options => queue_options,
message_properties => message_properties,
payload => event,
msgid => message_id);
ACCT_ID := event.acct_id;
SECURITY_ID :=event.security_id;
EVENT_CODE := event.event_code;
EVENT_TIME := event.event_time;
MSG_ID := RAWTOHEX(message_id);
分享到:
相关推荐
Dequeue 操作可以与 Enqueue 操作结合使用,以实现消息的异步传递。 Oracle AQ 是一个功能强大且灵活的消息队列系统,广泛应用于企业级应用中。通过这个实例,我们了解了 AQ 的安装、配置、Payload Type、Queue ...
DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE('DEQUEUE_ANY', aqdev, true); END; ``` 接下来,使用新创建的用户aqdev登录数据库,定义队列数据类型、队列表和队列。队列数据类型定义了存储在队列中的消息结构,例如: ```...
首先,Oracle高级队列的核心组成部分包括队列(Queue)、队列表(Queue Table)和消息类型(Message Type)。队列是存储消息的地方,而队列表则定义了队列的结构和属性,如存储空间、消息格式等。消息类型定义了队列...
在算法方面,可能会用到插入(enqueue)和删除(dequeue)操作,这些都是队列操作的基本算法。此外,如果项目涉及到对队列中的元素进行排序或查找,还可能用到其他算法,如快速排序、二分查找等。 NetBeans作为开发...
procedure ReverseQueue(Q: queue; S: stack); var temp: datatype; begin while not isEmpty(Q) do begin temp := dequeue(Q); // 从队列首部取出元素 push(S, temp); // 将元素压入栈 end; while not ...
procedure ReverseQueue(Q: QueueType): var S: StackType; makeEmpty(S); while not isEmpty(Q) do value := deQueue(Q); push(S, value); end; while not isEmpty(S) do value := pop(S); enqueue(Q, ...