通过查阅网上文章,发现很多Advanced Queue的例子无法跑起来。

参考了英文网站,可以正常运行成功。

http://www.orafaq.com/wiki/Advanced_Queueing

第一步:

建立object,建立queue table,建立queue,然后启动queue。
*****************************************************************************

[oracle@localhost ~]$ cat q01.sql

CREATE OR REPLACE TYPE event_msg_type AS OBJECT (
  name            VARCHAR2(10),
  current_status  NUMBER(5),
  next_status     NUMBER(5)
);

EXECUTE DBMS_AQADM.create_queue_table( -
   queue_table        =>  'testq.event_queue_tab', -
   queue_payload_type =>  'testq.event_msg_type');

EXECUTE DBMS_AQADM.create_queue( -
   queue_name         =>  'testq.event_queue', -
   queue_table        =>  'testq.event_queue_tab');

EXECUTE DBMS_AQADM.start_queue( -
   queue_name         => 'testq.event_queue', -
   enqueue            => TRUE);
/
[oracle@localhost ~]$

执行:

SQL> @q01.sql;

Type created.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

*****************************************************************************

第二步:

执行enqueue操作。

*****************************************************************************

[oracle@localhost ~]$ cat q02.sql
DECLARE
  l_enqueue_options    DBMS_AQ.enqueue_options_t;
  l_message_properties DBMS_AQ.message_properties_t;
  l_message_handle     RAW(16);
  l_event_msg          TESTQ.event_msg_type;
BEGIN
  l_event_msg := TESTQ.event_msg_type('REPORTER', 1, 2);
  DBMS_AQ.enqueue(queue_name         => 'testq.event_queue',
                  enqueue_options    => l_enqueue_options,
                  message_properties => l_message_properties,
                  payload            => l_event_msg,
                  msgid              => l_message_handle);
  COMMIT;
END;
/
[oracle@localhost ~]$

SQL> set serveroutput on;
SQL>
SQL> @q02.sql;

PL/SQL procedure successfully completed.

SQL>

*****************************************************************************

第三步:

执行dequeue操作。

*****************************************************************************

[oracle@localhost ~]$ cat q03.sql
DECLARE
  l_dequeue_options    DBMS_AQ.dequeue_options_t;
  l_message_properties DBMS_AQ.message_properties_t;
  l_message_handle     RAW(16);
  l_event_msg          TESTQ.event_msg_type;
BEGIN
  DBMS_AQ.dequeue(queue_name         => 'testq.event_queue',
                  dequeue_options    => l_dequeue_options,
                  message_properties => l_message_properties,
                  payload            => l_event_msg,
                  msgid              => l_message_handle);
  DBMS_OUTPUT.put_line('Event Name    : ' || l_event_msg.name);
  DBMS_OUTPUT.put_line('Current Status: ' || l_event_msg.current_status);
  DBMS_OUTPUT.put_line('Next Status   : ' || l_event_msg.next_status);
  COMMIT;
END;
/
[oracle@localhost ~]$

执行

SQL> @q03.sql;
Event Name    : REPORTER
Current Status: 1
Next Status   : 2

PL/SQL procedure successfully completed.

SQL>

*****************************************************************************

备忘!

转载于:https://www.cnblogs.com/gaojian/p/3643093.html

可以运行的Oracle Advanced Queue的例子相关推荐

  1. Oracle Advanced Queue (DBMS_AQ/DMBS_AQADM)

    扯在前面 Oracle通过AQ (Oracle Streams Advanced Queuing)来提供"进程间" (或者跨会话 -- inter-session) 通信的功能.关 ...

  2. 为何要把你的SAP运行在Oracle数据库上?

    提起SAP和甲骨文这两家公司,真是有很多故事可以聊.抛开二者在应用软件领域的竞争不谈,今天在这里我们只聊数据库. 一家是全球最大的应用软件厂商,一家是数据库技术领域的巨头,因此人们自然而然会想把两家公 ...

  3. oracle外关联更新操作,记要oracle 关联更新的例子

    记录oracle 关联更新的例子 1.说明 修改某一天"本期值"数据时,需要把第二天的"上期值"更新. 2.sql如下,作为备忘 update (select ...

  4. ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它

    SQL> startup nomount ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它 sql>shutdown immediate关闭再进行 sql>s ...

  5. 服务器重启oracle数据库服务器,oracle数据库怎么重启_网站服务器运行维护,oracle,数据库,重启...

    linux操作系统好学吗_网站服务器运行维护 学习大多类似鹿丁解牛,对事物的认识一般都是由浅入深.由表及里的过程,循序才能渐进.学习Linux同样要有一定的顺序和方法,这样学起来就不会感觉到难了. o ...

  6. oracle存储过程游标调用,oracle存储过程调用游标例子-Oracle

    oracle存储过程调用游标例子. 1:首先你需要创建一个包,并定义你返回的游标的类型.存储过程 create or replace package TEST_PKG is --定义游标 type t ...

  7. 运行hadoop自带的wordcount例子

    2019独角兽企业重金招聘Python工程师标准>>> 1.进入hadoop目录 cd /home/jason/hadoop-1.0.1/ 2.格式化DFS文件系统 hadoop n ...

  8. C#中运行命令行截取输出流的例子

    说明:经常有朋友问如何在C#中运行一个dos命令,并截取输出.输出流的问题,这个问题我以前在Java中实现过,由于在C#中没有遇到过类似的 情况,为了避免每次别人问都要一遍一遍演示的情况,特地做了一个 ...

  9. 让powershell同时只能运行一个脚本(进程互斥例子)

    powershell,mutex,互斥,进程互斥,脚本互斥 powershell脚本互斥例子,在powershell类别文章中,声明原创唯一. powershell 传教士 原创文章 2016-07- ...

  10. 终止正在运行的ORACLE作业

    如果您曾经认为取消 oracle job很容易,那么让我向您展示让我今天头痛的事情. 我们正在测试一个使用自定义代码在数据库之间出队和传播AQ消息的应用程序.共有9个流程,所有流程都使用提交为作业DB ...

最新文章

  1. 【算法导论】冒泡排序 选择排序
  2. python3 串行并列实际应用
  3. idea 创建 Maven+Hibernate项目
  4. 文件流习题8.3 8.4
  5. neo4j在linux下的安装
  6. python 谷歌地图api_《Python网络编程》学习笔记--使用谷歌地理编码API获取一个JSON文档...
  7. cuda加速的头文件_如何从C ++头文件调用CUDA文件?
  8. [回顾]事件对象——event
  9. Java基础知识总结(超级经典)
  10. oracle awr报告提取,Oracle AWR报告提取方法
  11. 各种把妹法——太强大了!
  12. 解决xshell SSH 连接远程ubuntu make menuconfig 退格键无法删除问题
  13. 《Node.js区块链开发》PDF版电子书下载
  14. 多网卡环境下(数据网卡+有线网卡)下广播失败问题
  15. js对大数据量的处理
  16. 高考数学试题不等关系与不等式|附习题
  17. 嘻嘻哈哈说文解字(讲)
  18. window10 Web服务器配置IIS的环境搭建
  19. 小米网关接入Homekit完整教程
  20. 第四章:Linux常用命令(续)

热门文章

  1. 【思路】Gym - 101173F - Free Figurines
  2. EF Code First学习笔记 初识Code First
  3. 理解Objective C 中id
  4. Android 加载网页进度条
  5. [数据结构] 左偏树
  6. mysql binlog 备份_linux定时备份mysql数据库
  7. java常见抛出异常
  8. python库下载安装_Windows版的各种Python库安装包下载地址与安装过程
  9. java json 打印出来_如何使用Java漂亮地打印现有的JSON数据?
  10. mysql_分组查询