Oracle DBMS_SAGA
Version 26ai

General Information
Library Note Morgan's Library Page Header
The best Oracle News for FY2026

Oracle Database 26ai is now availble. If you haven't you downloaded already: Why?
Purpose SAGA Microservices architecture support subprograms (also known as Epic).
AUTHID CURRENT_USER
Constants
Name Data Type Value
 OPCODEs
CMT_SAGA NUMBER 2
ABRT_SAGA NUMBER 4
REQUEST NUMBER 7
RESPONSE NUMBER 8
CMT_FAIL NUMBER 9
ABRT_FAIL NUMBER 10
Data Types subtype saga_id_t IS RAW(16);

type saga_payload_arr IS VARRAY(256) OF SYS.AQ$_JMS_TEXT_MESSAGE;

/* for user defined AfterSaga callback */
subtype saga_status IS VARCHAR2(20);
Dependencies
AQ$_DESCRIPTOR DBMS_SAGA_ADM DBMS_STNDARD
AQ$_JMS_TEXT_MESSAGE DBMS_SAGA_ADM_SYS DBMS_SYSTEM
AQ$_REG_INFO DBMS_SAGA_LIB DBMS_UTILITY
DBMS_AQ DBMS_SAGA_SYS  
Documented Yes: Packages and Types Reference
Exceptions
Error Code Reason
ORA-45493 ROLLINGUNSUPPORTED
First Available 23ai
Pragmas PRAGMA SUPPLEMENTAL_LOG_DATA(default, NONE);
Security Model Owned by SYS with EXECUTE granted to the EXECUTE_CATALOG_ROLE and SAGA_PARTICIPANT_ROLE roles.
Source {ORACLE_HOME}/rdbms/admin/dbmssaga.sql
{ORACLE_HOME}/rdbms/admin/prvtsaga.plb
Subprograms
 
AFTER_SAGA (new 23ai)
Undocumented dbms_saga.after_saga(saga_id IN saga_id_t);
TBD
 
BEGIN_SAGA (new 23ai)
Undocumented dbms_saga.begin_saga(
initiator_name IN VARCHAR2,
timeout        IN NUMBER DEFAULT 0,
version        IN NUMBER DEFAULT 1)
RETURN saga_id_t;
TBD
 
COMMIT_SAGA (new 23ai)
Undocumented dbms_saga.commit_saga(
saga_participant IN VARCHAR2,
saga_id          IN saga_id_t,
force            IN BOOLEAN DEFAULT FALSE);
TBD
 
FORGET_SAGA (new 23ai)
Undocumented dbms_saga.forget_saga(saga_id IN saga_id_t);
TBD
 
GET_SAGA_BEGIN_TIME (new 23ai)
Undocumented dbms_saga.get_saga_begin_time(message IN OUT sys.aq$_jms_text_message)
RETURN TIMESTAMP WITH TIME ZONE;
TBD
 
GET_SAGA_COORDINATOR (new 23ai)
Undocumented dbms_saga.get_saga_coordinator(message IN OUT sys.aq$_jms_text_message) RETURN VARCHAR2;
TBD
 
GET_SAGA_ID (new 23ai)
Undocumented

Overload 1
dbms_saga.get_saga_id RETURN saga_id_t;
TBD
Overload 2 dbms_saga.get_saga_id(message IN OUT sys.aq$_jms_text_message) RETURN RAW;
TBD
 
GET_SAGA_OPCODE (new 23ai)
Undocumented dbms_saga.get_saga_opcode(message IN OUT sys.aq$_jms_text_message) RETURN NUMBER;
TBD
 
GET_SAGA_RECIPIENT (new 23ai)
Undocumented dbms_saga.get_saga_recipient(message IN OUT sys.aq$_jms_text_message) RETURN VARCHAR2;
TBD
 
GET_SAGA_SENDER (new 23ai)
Undocumented dbms_saga.get_saga_sender(message IN OUT sys.aq$_jms_text_message) RETURN VARCHAR2;
TBD
 
GET_SAGA_TIMEOUT (new 23ai)
Undocumented dbms_saga.get_saga_timeout(message IN OUT sys.aq$_jms_text_message) RETURN NUMBER;
TBD
 
GET_SAGA_VERSION (new 23ai)
Undocumented dbms_saga.get_saga_version(message IN OUT sys.aq$_jms_text_message) RETURN NUMBER;
TBD
 
IS_INCOMPLETE (new 23ai)
Undocumented dbms_saga.is_incomplete(saga_id IN saga_id_t) RETURN BOOLEAN;
TBD
 
LEAVE_SAGA (new 23ai)
Undocumented dbms_saga.leave_saga(saga_id IN saga_id_t);
TBD
 
NOTIFY_CALLBACK_PARTICIPANT (new 23ai)
Undocumented dbms_saga.notify_callback_participant(
context  IN RAW,
reginfo  IN sys.aq$_reg_info,
descr    IN sys.aq$_descriptor,
payload  IN RAW,
payloadl IN NUMBER);
TBD
 
ROLLBACK_SAGA (new 23ai)
Undocumented dbms_saga.rollback_saga(
saga_participant IN VARCHAR2,
saga_id          IN saga_id_t,
force            IN BOOLEAN DEFAULT FALSE);
TBD
 
SEND_REQUEST (new 23ai)
Undocumented dbms_saga.send_request(
saga_id      IN saga_id_t,
recipient    IN VARCHAR2,
payload      IN JSON     DEFAULT NULL,
saga_version IN NUMBER   DEFAULT 1,
saga_spare   IN VARCHAR2 DEFAULT NULL);
TBD
 
SET_INCOMPLETE (new 23ai)
Undocumented dbms_saga.set_incomplete(saga_id IN saga_id_t);
TBD
 
SET_SAGA_COORDINATOR (new 23ai)
Undocumented dbms_saga.set_saga_coordinator(
message          IN OUT sys.aq$_jms_text_message,
saga_coordinator IN     VARCHAR2,
canonicalize     IN     BOOLEAN DEFAULT TRUE);
TBD
 
SET_SAGA_ID (new 23ai)
Undocumented

Overload 1
dbms_saga.set_saga_id(saga_id IN saga_id_t);
TBD
Overload 2 dbms_saga.set_saga_id(
message IN OUT sys.aq$_jms_text_message,
saga_id IN     RAW);
TBD
 
SET_SAGA_OPCODE (new 23ai)
Undocumented dbms_saga.set_saga_opcode(
message IN OUT sys.aq$_jms_text_message,
saga_id IN     saga_id_t,
opcode  IN     NUMBER);
TBD
 
SET_SAGA_RECIPIENT (new 23ai)
Undocumented dbms_saga.set_saga_recipient(
message      IN OUT sys.aq$_jms_text_message,
recipient    IN     VARCHAR2,
canonicalize IN     BOOLEAN DEFAULT TRUE);
TBD
 
SET_SAGA_SENDER (new 23ai)
Undocumented dbms_saga.set_saga_sender(
message      IN OUT sys.aq$_jms_text_message,
sender       IN     VARCHAR2,
canonicalize IN     BOOLEAN DEFAULT TRUE);
TBD
 
SET_SAGA_VERSION (new 23ai)
Undocumented dbms_saga.set_saga_version(
message      IN OUT sys.aq$_jms_text_message,
saga_version IN     NUMBER);
TBD

Related Topics
Built-in Functions
Built-in Packages
Database Security
DBMS_SAGA_ADM
DBMS_SAGA_ADM_SYS
DBMS_SAGA_CONNECT_INT
DBMS_SAGA_SYS
What's New In 21c
What's New In 26ai

Morgan's Library Page Footer
This site is maintained by Daniel Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2026 Daniel A. Morgan All Rights Reserved