bz_dequeue_eg.sql

来自「oracle9i+j2ee开发aq oracle9i+j2ee开发aq or」· SQL 代码 · 共 87 行

SQL
87
字号
REM script name: bz_enqueue_eg.sqlREM Shows various ways to do a dequeueREMREM version: 9iREM====================================================================REM I. Non-blocking dequeueREM====================================================================declare	deqopt	dbms_aq.dequeue_options_t;	mprop	dbms_aq.message_properties_t;	msgid	RAW(16);	payload bzcardorder_typ;begin	deqopt.consumer_name := 'BILLING';	deqopt.navigation := DBMS_AQ.FIRST_MESSAGE;	deqopt.wait := 0;		dbms_aq.dequeue(		queue_name => 'bzcardorders_q',		dequeue_options => deqopt,		message_properties => mprop,		payload => payload,		msgid => msgid);--	You can perform multiple database operations in the same transaction-- 	You need not commit here Or you can use visibility immediate to commit	commit;end;/REM====================================================================REM II. Blocking dequeueREM====================================================================declare	deqopt	dbms_aq.dequeue_options_t;	mprop	dbms_aq.message_properties_t;	msgid	RAW(16);	payload bzcardorder_typ;begin	deqopt.consumer_name := 'SHIPPING';	deqopt.navigation := DBMS_AQ.FIRST_MESSAGE;	deqopt.wait := 30; -- wait for 30 seconds	dbms_aq.dequeue(		queue_name => 'bzcardorders_q',		dequeue_options => deqopt,		message_properties => mprop,		payload => payload,		msgid => msgid);--	You can perform multiple database operations in the same transaction-- 	You need not commit here Or you can use visibility immediate to commit	commit;end;/REM====================================================================REM III. Dequeue with dequeue_conditionREM====================================================================declare	deqopt	dbms_aq.dequeue_options_t;	mprop	dbms_aq.message_properties_t;	msgid	RAW(16);	payload bzcardorder_typ;begin	deqopt.consumer_name := 'SHIPPING';	deqopt.navigation := DBMS_AQ.FIRST_MESSAGE;-- dequeue messages older than 30 seconds	deqopt.deq_condition := 'sysdate - enq_time > 30/86400';	dbms_aq.dequeue(		queue_name => 'bzcardorders_q',		dequeue_options => deqopt,		message_properties => mprop,		payload => payload,		msgid => msgid);--	You can perform multiple database operations in the same transaction-- 	You need not commit here Or you can use visibility immediate to commit	commit;end;/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?