Oracle高级队列的示例分析
小编给大家分享一下Oracle高级队列的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
Oracle高级队列(Advanced Queue)简单实例
最简单的高级队列的练习,基本上都使用了默认参数。
--CreateTypecreateorreplacetypenoteasObject(subjectvarchar2(100),Contentvarchar2(2000),CreateTimedate);--Createqueuetablebeginsys.dbms_aqadm.create_queue_table(queue_table=>'NOTETAB',queue_payload_type=>'TEST.NOTE'end;--createqueuebeginsys.dbms_aqadm.create_queue(queue_name=>'NOTEQ',queue_table=>'NOTETAB',queue_type=>sys.dbms_aqadm.normal_queue,max_retries=>5,retry_delay=>0,retention_time=>0);end;--enqueuedeclarev_Messagenote;v_MsgIdRAW(16);v_optionsDBMS_AQ.ENQUEUE_OPTIONS_T;v_propertiesDBMS_AQ.MESSAGE_PROPERTIES_T;v_RecipientsDBMS_AQ.AQ$_RECIPIENT_LIST_T;beginv_Message:=note(subject=>'note3',Content=>'content3',createTime=>sysdate);--v_Recipients(0):=sys.aq$_agent('NOTE','MTQ',0);--v_properties.recipient_list:=v_Recipients;v_options.visibility:=DBMS_AQ.IMMEDIATE;dbms_aq.enqueue(queue_name=>'noteq',enqueue_options=>v_options,message_properties=>v_properties,payload=>v_Message,msgid=>v_MsgId);dbms_output.put_line('encodesuccess,msgidis'||v_MsgId);end;--dequeuedeclarev_Messagenote;v_MsgIdRAW(16);v_optionsDBMS_AQ.DEQUEUE_OPTIONS_T;v_propertiesDBMS_AQ.MESSAGE_PROPERTIES_T;v_RecipientsDBMS_AQ.AQ$_RECIPIENT_LIST_T;begin--v_Recipients(0):=sys.aq$_agent('NOTE','MTQ',0);--v_properties.recipient_list:=v_Recipients;v_options.visibility:=DBMS_AQ.IMMEDIATE;dbms_aq.dequeue(queue_name=>'noteq',dequeue_options=>v_options,message_properties=>v_properties,payload=>v_Message,msgid=>v_MsgId);dbms_output.put_line('decodesuccess,msgidis'||v_MsgId);dbms_output.put_line('subjectis'||v_Message.subject);dbms_output.put_line('Contentis'||v_Message.Content);dbms_output.put_line('createTimeis'||to_char(v_Message.createTime,'yyyy-mm-ddhh34:mi:ss'));end;
以上是“Oracle高级队列的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。