Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
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