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
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