Oracle DBMS_SYS_ERROR
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 An officially unsupported package utilized by more than 200 of Oracle's built-ins as part of their exception handling. I do not recommend using it directly but it is a good model for how to think about exception handling.
AUTHID DEFINER
Dependencies SELECT name FROM dba_dependencies WHERE referenced_name = 'DBMS_SYS_ERROR' UNION
SELECT referenced_name FROM dba_dependencies WHERE name = 'DBMS_SYS_ERROR' ORDER BY 1;

Returns 260 objects
Documented No
First Available Not known
Security Model Owned by SYS: Execute is granted to GSMADMIN_INTERNAL, SYSBACKUP, and SYSTEM
Source {ORACLE_HOME}/rdbms/admin/prvthsye.plb
{ORACLE_HOME}/rdbms/admin/prvthsyer.plb
 
RAISE_SYSTEM_ERROR (26 new 23ai overloads)
Undocumented

Overload 1
dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
CREATE OR REPLACE TRIGGER system.def$_propagator_trig
BEFORE INSERT ON system.def$_propagator
DECLARE
 prop_count NUMBER;
BEGIN
  SELECT COUNT(*)
  INTO prop_count
  FROM system.def$_propagator;

  IF (prop_count > 0) THEN
    -- raise duplicate propagator error
    sys.dbms_sys_error.raise_system_error(-23394);
  END IF;
END;
/
Overload 2 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 3 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 4 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
-- this demo is fabricated from production code in $ORACLE_HOME/rdbms/admin/catdwgrd.sql

col cname format a30
col version format a12

SELECT cname, version, org_version, prv_version
FROM registry$;

DECLARE
 p_prv_version VARCHAR2(30);
 p_compatible  VARCHAR2(30);
BEGIN
  -- Get the previous version of the CATPROC component
  SELECT prv_version
  INTO p_prv_version
  FROM registry$
  WHERE cid = 'CATPROC';

  -- return the current compatible value
  SELECT value
  INTO p_compatible
  FROM v$parameter
  WHERE name = 'compatible';

  IF p_compatible > p_prv_version THEN
    dbms_sys_error.raise_system_error(-39707, p_compatible, p_prv_version);
  END IF;
END;
/
Overload 5 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 6 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 7 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 8 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
arg3           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 9 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN NUMBER,
arg3           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 10 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN NUMBER,
arg3           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 11 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
arg3           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 12 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN NUMBER,
arg3           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 13 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN NUMBER,
arg3           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 14 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN VARCHAR2,
arg3           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 15 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN VARCHAR2,
arg3           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 16 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
arg3           IN VARCHAR2,
arg4           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 17 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
arg3           IN VARCHAR2,
arg4           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 18 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
arg3           IN NUMBER,
arg4           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 19 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
arg3           IN NUMBER,
arg4           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 20 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN NUMBER,
arg3           IN VARCHAR2,
arg4           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 21 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN NUMBER,
arg3           IN VARCHAR2,
arg4           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 22 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN NUMBER,
arg3           IN NUMBER,
arg4           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 23 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN NUMBER,
arg3           IN NUMBER,
arg4           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 24 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN VARCHAR2,
arg3           IN VARCHAR2,
arg4           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 25 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN VARCHAR2,
arg3           IN VARCHAR2,
arg4           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 26 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN VARCHAR2,
arg3           IN NUMBER,
arg4           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 27 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN VARCHAR2,
arg3           IN NUMBER,
arg4           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 28 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN NUMBER,
arg3           IN VARCHAR2,
arg4           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 29 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN NUMBER,
arg3           IN NUMBER,
arg4           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 30 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN NUMBER,
arg3           IN VARCHAR2,
arg4           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 31 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN NUMBER,
arg2           IN NUMBER,
arg3           IN NUMBER,
arg4           IN NUMBER,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 32 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
arg3           IN VARCHAR2,
arg4           IN VARCHAR2,
arg5           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 33 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
arg3           IN VARCHAR2,
arg4           IN VARCHAR2,
arg5           IN VARCHAR2,
arg6           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 34 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
arg3           IN VARCHAR2,
arg4           IN VARCHAR2,
arg5           IN VARCHAR2,
arg6           IN VARCHAR2,
arg7           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
Overload 35 dbms_sys_error.raise_system_error(
num            IN BINARY_INTEGER,
arg1           IN VARCHAR2,
arg2           IN VARCHAR2,
arg3           IN VARCHAR2,
arg4           IN VARCHAR2,
arg5           IN VARCHAR2,
arg6           IN VARCHAR2,
arg7           IN VARCHAR2,
arg8           IN VARCHAR2,
keeperrorstack IN BOOLEAN DEFAULT FALSE);
TBD
 
Testing
Examples of testing to understand the encapsulated functionality exec dbms_sys_error.raise_system_error(-20000);
     *
ORA-21001: error number argument to raise_system_error of -20000 is out of range

exec dbms_sys_error.raise_system_error(-39707);
     *
ORA-39707: compatibile parameter too high for downgrade to

exec dbms_sys_error.raise_system_error(-39708);
     *
ORA-39708: component '' not a component

Related Topics
Built-in Functions
Built-in Packages
DBMS_SYS_ERROR
Exception Handling
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