09.12.2012 Views

Advanced Queuing - Oracle

Advanced Queuing - Oracle

Advanced Queuing - Oracle

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

tkaqdocp.sql: Examples of Operational Interfaces<br />

end;<br />

/<br />

show errors;<br />

payload => deq_order_data,<br />

msgid => deq_msgid);<br />

deq_item_data := deq_order_data.items(1);<br />

deq_book_data := deq_item_data.item;<br />

deq_cust_data := deq_order_data.customer;<br />

IF (deq_cust_data.country = 'Canada' OR<br />

deq_cust_data.country = 'Mexico' ) THEN<br />

dopt.dequeue_mode := dbms_aq.REMOVE_NODATA;<br />

dopt.msgid := deq_msgid;<br />

dbms_aq.dequeue(<br />

queue_name => qname,<br />

dequeue_options => dopt,<br />

message_properties => mprop,<br />

payload => deq_order_nodata,<br />

msgid => deq_msgid);<br />

C-28 <strong>Oracle</strong>9i Application Developer’s Guide - <strong>Advanced</strong> <strong>Queuing</strong><br />

dbms_output.put_line(' **** next booked order **** ');<br />

dbms_output.put_line('order_no: ' || deq_order_data.orderno ||<br />

' book_title: ' || deq_book_data.title ||<br />

' quantity: ' || deq_item_data.quantity);<br />

dbms_output.put_line('ship_state: ' || deq_cust_data.state ||<br />

' ship_country: ' || deq_cust_data.country ||<br />

' ship_order_type: ' || deq_order_data.ordertype);<br />

END IF;<br />

commit;<br />

dopt.dequeue_mode := DBMS_AQ.LOCKED;<br />

dopt.msgid := NULL;<br />

dopt.navigation := dbms_aq.NEXT_MESSAGE;<br />

EXCEPTION<br />

WHEN no_messages THEN<br />

dbms_output.put_line (' ---- NO MORE BOOKED ORDERS ---- ');<br />

new_orders := FALSE;<br />

END;<br />

END LOOP;<br />

grant execute on shipping_bookedorder_deq to WS;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!