可以运行的Oracle Advanced Queue的例子
通过查阅网上文章,发现很多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的例子相关推荐
- Oracle Advanced Queue (DBMS_AQ/DMBS_AQADM)
扯在前面 Oracle通过AQ (Oracle Streams Advanced Queuing)来提供"进程间" (或者跨会话 -- inter-session) 通信的功能.关 ...
- 为何要把你的SAP运行在Oracle数据库上?
提起SAP和甲骨文这两家公司,真是有很多故事可以聊.抛开二者在应用软件领域的竞争不谈,今天在这里我们只聊数据库. 一家是全球最大的应用软件厂商,一家是数据库技术领域的巨头,因此人们自然而然会想把两家公 ...
- oracle外关联更新操作,记要oracle 关联更新的例子
记录oracle 关联更新的例子 1.说明 修改某一天"本期值"数据时,需要把第二天的"上期值"更新. 2.sql如下,作为备忘 update (select ...
- ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> startup nomount ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它 sql>shutdown immediate关闭再进行 sql>s ...
- 服务器重启oracle数据库服务器,oracle数据库怎么重启_网站服务器运行维护,oracle,数据库,重启...
linux操作系统好学吗_网站服务器运行维护 学习大多类似鹿丁解牛,对事物的认识一般都是由浅入深.由表及里的过程,循序才能渐进.学习Linux同样要有一定的顺序和方法,这样学起来就不会感觉到难了. o ...
- oracle存储过程游标调用,oracle存储过程调用游标例子-Oracle
oracle存储过程调用游标例子. 1:首先你需要创建一个包,并定义你返回的游标的类型.存储过程 create or replace package TEST_PKG is --定义游标 type t ...
- 运行hadoop自带的wordcount例子
2019独角兽企业重金招聘Python工程师标准>>> 1.进入hadoop目录 cd /home/jason/hadoop-1.0.1/ 2.格式化DFS文件系统 hadoop n ...
- C#中运行命令行截取输出流的例子
说明:经常有朋友问如何在C#中运行一个dos命令,并截取输出.输出流的问题,这个问题我以前在Java中实现过,由于在C#中没有遇到过类似的 情况,为了避免每次别人问都要一遍一遍演示的情况,特地做了一个 ...
- 让powershell同时只能运行一个脚本(进程互斥例子)
powershell,mutex,互斥,进程互斥,脚本互斥 powershell脚本互斥例子,在powershell类别文章中,声明原创唯一. powershell 传教士 原创文章 2016-07- ...
- 终止正在运行的ORACLE作业
如果您曾经认为取消 oracle job很容易,那么让我向您展示让我今天头痛的事情. 我们正在测试一个使用自定义代码在数据库之间出队和传播AQ消息的应用程序.共有9个流程,所有流程都使用提交为作业DB ...
最新文章
- 【算法导论】冒泡排序 选择排序
- python3 串行并列实际应用
- idea 创建 Maven+Hibernate项目
- 文件流习题8.3 8.4
- neo4j在linux下的安装
- python 谷歌地图api_《Python网络编程》学习笔记--使用谷歌地理编码API获取一个JSON文档...
- cuda加速的头文件_如何从C ++头文件调用CUDA文件?
- [回顾]事件对象——event
- Java基础知识总结(超级经典)
- oracle awr报告提取,Oracle AWR报告提取方法
- 各种把妹法——太强大了!
- 解决xshell SSH 连接远程ubuntu make menuconfig 退格键无法删除问题
- 《Node.js区块链开发》PDF版电子书下载
- 多网卡环境下(数据网卡+有线网卡)下广播失败问题
- js对大数据量的处理
- 高考数学试题不等关系与不等式|附习题
- 嘻嘻哈哈说文解字(讲)
- window10 Web服务器配置IIS的环境搭建
- 小米网关接入Homekit完整教程
- 第四章:Linux常用命令(续)