`

Oracle queue的enqueue & dequeue

    博客分类:
  • DB
 
阅读更多
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);
分享到:
评论

相关推荐

    通过ODP.NET 11g用Oracle Advanced Queue进行消息编程.pdf

    Oracle Advanced Queue(AQ)是Oracle数据库提供的一种高级消息队列技术,它允许应用程序进行异步通信,实现事件驱动的架构。ODP.NET是Oracle Data Provider for .NET,它是一个专门用于.NET Framework的数据访问...

    jQuery队列控制方法详解queue()/dequeue()/clearQueue()

    本文将深入探讨jQuery中的队列控制方法`queue()`、`dequeue()`和`clearQueue()`,帮助你更好地理解和运用这些功能。 ### jQuery队列介绍 jQuery的队列主要用于管理和执行一系列同步或异步操作,特别是与动画相关的...

    Oracle AQ使用实例

    Dequeue 操作可以与 Enqueue 操作结合使用,以实现消息的异步传递。 Oracle AQ 是一个功能强大且灵活的消息队列系统,广泛应用于企业级应用中。通过这个实例,我们了解了 AQ 的安装、配置、Payload Type、Queue ...

    queue:在Node中实现的队列数据结构

    var queue = new Queue ( ) ; queue . enqueue ( 'bird' ) ; queue . enqueue ( 'cat' ) ; queue . enqueue ( 'dog' ) ; queue . dequeue ( ) // 'bird' queue . dequeue ( ) // 'cat' queue . dequeue ( ) // 'dog'...

    C语言实现的队列Queue

    void Enqueue(Queue* q, int item); int Dequeue(Queue* q); int Front(Queue* q); int IsEmpty(Queue* q); int IsFull(Queue* q); void QueueDestroy(Queue* q); ``` `queue.c` 文件则包含这些函数的具体实现。...

    ConcurrentQueue队列安全例子【调试输出显示结果】

    `ConcurrentQueue<T>`是线程安全的,这意味着在队列上执行的插入(Enqueue)和删除(Dequeue)操作都是原子的,不会因为多线程竞争条件导致数据不一致。它采用了锁-free和自旋-wait算法来实现这些操作,确保了高并发...

    Unity3d 队列 方法 Queue

    queue.Enqueue(Time.time.ToString()); // 向队列末尾添加当前时间戳的字符串表示 print("a" + Time.time); } void InsertTime2() { queue.Enqueue(Time.time.ToString()); // 向队列末尾添加当前时间戳的...

    Oracle Universal Work Queue Implementation Guide

    Oracle Universal Work Queue 实施指南是Oracle公司为11i版本提供的一份详细文档,旨在帮助用户和管理员有效地部署和管理这个工作队列系统。Oracle Universal Work Queue(UWQ)是一个核心组件,它在Oracle应用中...

    循环队列生成杨辉三角

    InitQueue函数用于初始化队列,QueueEmpty函数用于判断队列是否为空,GetHead函数用于取队头元素,QueueLength函数用于求队长,EnQueue函数用于入队,DeQueue函数用于出队。 2. 杨辉三角的生成 杨辉三角是一种特殊...

    C++ Queue(带上限的)

    在C++编程语言中,`Queue`是一种常用的数据结构,它遵循“先进先出”(First In First Out, FIFO)的原则。通常,C++标准库提供了`<queue>`头文件来实现基本的队列操作,但这个标准队列并没有设置上限。在某些特定...

    Unity QueueExample

    Unity Queue操作实例

    C语言实现队列

    void enqueue(CircularQueue *q, int item) { if (is_full(q)) { printf("Queue is full!\n"); return; } q->rear = (q->rear + 1) % MAX_SIZE; q->data[q->rear] = item; if (is_empty(q)) { q->front = q-...

    like-queue:作为使用堆栈结构数组的队列,其速度与堆栈的速度相同。

    相似队列 使用堆栈数组结构进行排队。 堆栈可以Like Queue ,因此称为Like Queue 。 它具有以与堆栈相同的速度运行的特性。 虽然速度很快,但实际数据不会被删除,因此请注意使用。... dequeue ( ) ;

    Oracle Universal Work Queue User Guide

    Oracle Universal Work Queue (UWQ) 是Oracle公司提供的一款企业级工作流管理工具,用于处理和协调业务流程中的任务分配和执行。在Oracle 11i版本中,它旨在提高工作效率,通过集中化的工作队列管理和自动化的工作...

    22. Queue & Tables

    INE出品的SDN视频教程

    C语言头文件 QUEUE.H

    C语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言...

    tiny-linked-queue:由链表实现的小javascript队列

    由链表实现的入enqueue和dequeue操作具有O(1)时间复杂性,比Array.prototype.shift花费O(n)更快。 用法 npm install -D tiny-linked-queue const Qeueue = require ( 'tiny-linked-queue' ) const q = new ...

    C#队列Queue多线程用法实例

    queue.Enqueue(str); Console.WriteLine("入队列-{0}", str); } ``` 接下来,我们创建一个新的线程来处理队列中的数据。线程是操作系统分配CPU时间的基本单位,多线程可以提高程序的执行效率,特别是在处理大量...

Global site tag (gtag.js) - Google Analytics