Details
-
New Feature
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Add a subset of the system package SYS.DBMS_AQ:
The system package provides queuing and dequeuing objects (RAW, text etc).
- Procedure DBMS_AQ.ENQUEUE
- Type DBMS_AQ.MESSAGE_PROPERTIES_T
- Type DBMS_AQ.ENQUEUE_OPTIONS_T
The description of DMS_AQ can be found at https://docs.oracle.com/en/database/oracle/oracle-database/21/arpls/DBMS_AQ.html
Example usage can be found at https://docs.oracle.com/cd/A97385_01/appdev.920/a96587/apexampl.htm#62620
The procedures that are part of for DMS_AQ are:
BIND_AGENT Procedure
DEQUEUE Procedure
DEQUEUE_ARRAY Function
ENQUEUE Procedure
ENQUEUE_ARRAY Function
LISTEN Procedures
POST Procedure
REGISTER Procedure
SEEK Procedure
UNBIND_AGENT Procedure
UNREGISTER Procedure
DBMS_AQ have it's own privilege system and is very complex to use.
Another alternative to use DBMS_AQ would be to implement the basic feature in pure sql by adding something like
CREATE TABLE queue (message char (100)) ENGINE=queue;
QUEUE push into queue message("100");
set @message= DEQUEUE(queue, NEWEST | OLDEST | WHERE ...)
As 'queue' is a normal table with a well defined format, one could also use select, insert, delete, update, truncate, drop etc on it, which would provide much more functionality than Oracle's AQ provides.
This would be more like the proper SQL way to solve the problem.
Attachments
Issue Links
- blocks
-
MDEV-34323 Oracle compatibility project 3
-
- Open
-
- is blocked by
-
MDEV-34391 SET PATH statement
-
- Needs Feedback
-