rem 
rem $Header: prvtsyer.sql 7010300.1 94/02/24 18:23:34 snataraj Generic<base> $ 
rem 
Rem
Rem    NAME
Rem      prvtsyer.sql - PRVT_SYs_ErroR - pl/sql routines for 
Rem                     system error messages for DBMS* routines.
Rem    DESCRIPTION
Rem      These are private functions to be released in PL/SQL binary form.
Rem      The package includes routines for raising erors a la raise_application
Rem      error, but with the error rage dedicated to and allocated among
Rem      DBMS* SQL routines.
Rem      Eventuall, NLS functionality will be provided thought an interface 
Rem      to kernel error functions.
Rem    RETURNS
Rem 
Rem    NOTES
Rem     Allocate error numbers in error.msg
Rem     Range is 21300 to 22299
Rem     DO NOT GRANT THIS PACKAGE TO PUBLIC
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem     adowning   02/04/94 -  Branch_for_patch
Rem     adowning   02/04/94 -  Creation
Rem     adowning   02/02/94 -  split file into public / private binary files
Rem     dsdaniel   10/29/93 -  Creation
Rem     dsdaniel   11/01/93 -  Branch_for_patch
Rem
REM ********************************************************************
REM THESE PACKAGES MUST NOT BE MODIFIED BY THE CUSTOMER.  DOING SO
REM COULD CAUSE INTERNAL ERRORS AND SECURITY VIOLATIONS IN THE
REM RDBMS.  SPECIFICALLY, THE PSD*  ROUTINES MUST NOT BE
REM CALLED DIRECTLY BY ANY CLIENT AND MUST REMAIN PRIVATE TO THE PACKAGE BODY.
REM ********************************************************************

CREATE OR REPLACE PACKAGE dbms_sys_error IS
  PROCEDURE raise_system_error(num            BINARY_INTEGER,
                               msg            VARCHAR2,
                               keeperrorstack BOOLEAN DEFAULT FALSE);
-- Raise a system error int the range 21300 to 21399
-- Input parameters:
--   num
--     Error number in the range 21300 to 21399
--   msg 
--     Error message
--   keeerrorstack
--     if True, raised error is added to the top of the current stack,
--     so that any errors that caused this error to be raised are retained.
-- Exception:
--   raises ORA-21000 If error not in range.
END dbms_sys_error;
/

CREATE OR REPLACE PACKAGE BODY dbms_sys_error IS
  PROCEDURE psdrse(num            BINARY_INTEGER,
                   msg            VARCHAR2,
                   keeperrorstack BOOLEAN DEFAULT FALSE); -- 1 (see psdicd.c)
   PRAGMA INTERFACE (c,psdrse);

  PROCEDURE raise_system_error(num            BINARY_INTEGER,
                               msg            VARCHAR2,
                               keeperrorstack BOOLEAN DEFAULT FALSE) IS
  BEGIN
    psdrse(num,msg,keeperrorstack);
  END;
END dbms_sys_error;
/
