Oracle高级队列(Advanced Queue)简单实例

所属分类: 数据库 / oracle 阅读数: 449
收藏 0 赞 0 分享

Oracle高级队列(Advanced Queue)简单实例

最简单的高级队列的练习,基本上都使用了默认参数。

-- Create Type
create or replace type note as Object(
 subject varchar2(100),
 Content varchar2(2000),CreateTime date
);

-- Create queue table
begin
 sys.dbms_aqadm.create_queue_table(
  queue_table => 'NOTETAB',
  queue_payload_type => 'TEST.NOTE'
end;

--create queue
begin
 sys.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;

--enqueue
declare
v_Message note;
v_MsgId RAW(16);
v_options DBMS_AQ.ENQUEUE_OPTIONS_T;
v_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
v_Recipients DBMS_AQ.AQ$_RECIPIENT_LIST_T;
begin
   v_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('encode success,msgid is '||v_MsgId);

end;

--dequeue
declare
v_Message note;
v_MsgId RAW(16);
v_options DBMS_AQ.DEQUEUE_OPTIONS_T;
v_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
v_Recipients DBMS_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('decode success,msgid is '||v_MsgId);
   dbms_output.put_line('subject is '||v_Message.subject);
   dbms_output.put_line('Content is '||v_Message.Content);
   dbms_output.put_line('createTime is '||to_char(v_Message.createTime,'yyyy-mm-dd hh24:mi:ss'));
end;

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多精彩内容其他人还在看

Oracle固定执行计划之SQL PROFILE概要文件详解

概要文件,就是一份描述如何使用系统的资源(主要是CPU资源)的配置文件,这篇文章主要介绍了Oracle固定执行计划之SQL PROFILE概要文件 ,需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle 12CR2查询转换教程之表扩展详解

Oracle 12cR2版本已经发布有一段时间,下面这篇文章主要给大家介绍了关于Oracle 12CR2查询转换教程之表扩展的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Oracle 12CR2查询转换教程之cursor-duration临时表详解

这篇文章主要给大家介绍了关于Oracle 12CR2查询转换教程之cursor-duration临时表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Oracle 12CR2查询转换教程之临时表转换详解

这篇文章主要给大家介绍了关于Oracle 12CR2查询转换教程之临时表转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Oracle中字符串截取常用方法总结【推荐】

这篇文章主要介绍了Oracle中字符串截取常用方法总结,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

关于expdp任务异常的处理案例详析

这篇文章主要给大家介绍了关于expdp任务异常处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

oracle中的一些常用函数及示例

这篇文章主要给大家介绍了关于oracle中的一些常用函数及示例的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

oracle实现一对多数据分页查询筛选示例代码

这篇文章主要给大家介绍了关于oracle实现一对多数据分页查询筛选的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Oracle数据库新装之后出现的监听程序无法正常启动和运行(Oracle-12514)问题

这篇文章主要介绍了Oracle数据库新装之后出现的监听程序无法正常启动和运行(Oracle-12514)问题,需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle中定义以及使用同义词的方法

这篇文章主要给大家介绍了关于Oracle中定义以及使用同义词的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多