Monday, May 7, 2012

Oracle custom PL/SQL errors

We are all aware that Oracle has exposed custom ORA errors through unique interval of ORA PL/SQL errors. Here is part from Oracle documentation:
Defining Your Own Error Messages: Procedure RAISE_APPLICATION_ERROR
The procedure RAISE_APPLICATION_ERROR lets you issue user-defined ORA- error messages from stored subprograms. That way, you can report errors to your application and avoid returning unhandled exceptions.
To call RAISE_APPLICATION_ERROR, use the syntax
raise_application_error(error_number, message[, {TRUE | FALSE}]);
where error_number is a negative integer in the range -20000 .. -20999 and message is a character string up to 2048 bytes long. If the optional third parameter is TRUE, the error is placed on the stack of previous errors. If the parameter is FALSE (the default), the error replaces all previous errors. RAISE_APPLICATION_ERROR is part of package DBMS_STANDARD, and as with package STANDARD, you do not need to qualify references to it.

Sounds cool and very easy to implement.
But recently I found out that even Oracle itself, is using the same custom segment for it's own PL/SQL error codes. This came to mine mind once suddenly, while I was grepping through SYSMAN PL/SQL source schema, searching for something else. The matter of fact, I found out that this is not an exception but regular case. So to be able to grep the whole source, next script is greping through sys.dba_source on SYS, SYSTEM and SYSMAN schemas only:
set linesize 170
set pagesize 200

col excode for a6
col owner for a10
col TYPE for A15
col name for A24
col exname for A32
col LINE for 9990
col TEXT for a60

WITH data AS (
         SELECT (   '^.*PRAGMA\s+EXCEPTION_INIT\s*\(\s*' -- PRAGMA EXCPETION_INIT(
                 || '([A-Z0-9_$#]{1,30}|"[^"]{1,30}")'         -- Exception-Name
                 -- comment the following line out, if the exception_name
                 -- and the exception code are on different lines
                 || '\s*,\s*''?(-?\d{1,5})''?'                 -- Exception-Code
                 -------
                 || '.*$'                                         -- End-of-Line
                ) AS rx
              , (' ' || CHR (10) || CHR (13) || CHR (9)) AS trimset
           FROM DUAL
     )
   , data_source AS (
         SELECT s.owner
              , s.TYPE
              , s.name
              , s.line
              , UPPER (RTRIM (s.text, (' ' || CHR (10) || CHR (13)))) AS text
           FROM data d, dba_source s
          WHERE REGEXP_LIKE (s.text, d.rx, 'i')
     )
   , data_prepared AS (
         SELECT ds.owner
              , ds.TYPE
              , ds.name
              , ds.line
              , ds.text
              , REGEXP_REPLACE (ds.text, d.rx, '\1') AS exname
              , REGEXP_REPLACE (ds.text, d.rx, '\2') AS excode
           FROM data d, data_source ds
     )
 SELECT dp.excode
       , dp.owner
       , dp.TYPE
       , dp.name
       , dp.exname
       , dp.line
       , dp.text
    FROM data_prepared dp
   WHERE (TO_NUMBER (dp.excode) BETWEEN -20999 AND -20000)
     AND dp.owner IN ('SYS', 'SYSMAN', 'SYSTEM')
ORDER BY TO_NUMBER (dp.excode) DESC
       , dp.owner
       , dp.TYPE
       , dp.name;
The result is really amazing:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> /

EXCODE OWNER   TYPE       NAME                     EXNAME                            LINE TEXT                                                                    
------ ------- ---------- ------------------------ -------------------------------- ----- ------------------------------------------------------
-20000 SYSMAN  PACKAGE 
               BODY       MGMT_ECM_POLICY          EVALUATE_EXCEPTION                   6   PRAGMA EXCEPTION_INIT( EVALUATE_EXCEPTION, -20000 );               
-20025 SYS     PROCEDURE  AW_DROP_PROC             DBERR20                              5     PRAGMA EXCEPTION_INIT(DBERR20, -20025);                          
-20197 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_USER_PWD                   184 PRAGMA EXCEPTION_INIT(INVALID_USER_PWD, -20197);                     
-20199 SYSMAN  PACKAGE    MGMT_GLOBAL              EM_LOCK_CONTEXT                    189 PRAGMA EXCEPTION_INIT(EM_LOCK_CONTEXT, -20199);                      
-20200 SYSMAN  PACKAGE    EM_SEVERITY_REPOS        SEV_EVAL_PROC_NOT_FOUND             28 PRAGMA EXCEPTION_INIT(SEV_EVAL_PROC_NOT_FOUND, -20200);              
-20200 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_USER_NAME                  194 PRAGMA EXCEPTION_INIT(INVALID_USER_NAME, -20200);                    
-20201 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_PASSWORD                   199 PRAGMA EXCEPTION_INIT(INVALID_PASSWORD, -20201);                     
-20202 SYSMAN  PACKAGE    EM_SEVERITY_REPOS        UNSUPPORTED_TARGET                  33 PRAGMA EXCEPTION_INIT(UNSUPPORTED_TARGET, -20202);                   
-20202 SYSMAN  PACKAGE    MGMT_GLOBAL              DUPLICATE_USER                     204 PRAGMA EXCEPTION_INIT(DUPLICATE_USER, -20202);                       
-20203 SYSMAN  PACKAGE    EM_SEVERITY_REPOS        SEV_EVAL_PROC_NOT_FOUND             38 PRAGMA EXCEPTION_INIT(SEV_EVAL_PROC_NOT_FOUND, -20203);              
-20203 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_ROLE_NAME                  209 PRAGMA EXCEPTION_INIT(INVALID_ROLE_NAME, -20203);                    
-20204 SYSMAN  PACKAGE    MGMT_GLOBAL              USER_DOES_NOT_EXIST                214 PRAGMA EXCEPTION_INIT(USER_DOES_NOT_EXIST, -20204);                  
-20205 SYSMAN  PACKAGE    MGMT_GLOBAL              ROLE_DOES_NOT_EXIST                219 PRAGMA EXCEPTION_INIT(ROLE_DOES_NOT_EXIST, -20205);                  
-20206 SYSMAN  PACKAGE    MGMT_GLOBAL              TARGET_DOES_NOT_EXIST              224 PRAGMA EXCEPTION_INIT(TARGET_DOES_NOT_EXIST, -20206);                
-20207 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_DESCRIPTION                229 PRAGMA EXCEPTION_INIT(INVALID_DESCRIPTION, -20207);                  
-20208 SYSMAN  PACKAGE    MGMT_GLOBAL              DELETE_ALL_TARGETS                 234 PRAGMA EXCEPTION_INIT(DELETE_ALL_TARGETS, -20208);                   
-20209 SYSMAN  PACKAGE    MGMT_GLOBAL              EDIT_ALL_TARGETS                   239 PRAGMA EXCEPTION_INIT(EDIT_ALL_TARGETS, -20209);                     
-20210 SYSMAN  PACKAGE    MGMT_GLOBAL              DELETE_SUPERUSER                   244 PRAGMA EXCEPTION_INIT(DELETE_SUPERUSER, -20210);                     
-20211 SYSMAN  PACKAGE    MGMT_GLOBAL              DUPLICATE_ROLE                     249 PRAGMA EXCEPTION_INIT(DUPLICATE_ROLE, -20211);                       
-20212 SYSMAN  PACKAGE    MGMT_GLOBAL              EMAIL_TEST_FAILED                  254 PRAGMA EXCEPTION_INIT(EMAIL_TEST_FAILED, -20212);                    
-20213 SYSMAN  PACKAGE    MGMT_GLOBAL              PROGRAM_TEST_FAILED                259 PRAGMA EXCEPTION_INIT(PROGRAM_TEST_FAILED, -20213);                  
-20215 SYSMAN  PACKAGE    MGMT_GLOBAL              SNMP_TEST_FAILED                   267 PRAGMA EXCEPTION_INIT(SNMP_TEST_FAILED, -20215);                     
-20216 SYSMAN  PACKAGE    MGMT_GLOBAL              NO_SUCH_METRIC_FOUND               520 PRAGMA EXCEPTION_INIT(NO_SUCH_METRIC_FOUND, -20216);                 
-20217 SYSMAN  PACKAGE    MGMT_GLOBAL              MODIFY_FAILED                      271 PRAGMA EXCEPTION_INIT(MODIFY_FAILED, -20217);                        
-20218 SYSMAN  PACKAGE    MGMT_GLOBAL              DROP_FAILED                        276 PRAGMA EXCEPTION_INIT(DROP_FAILED, -20218);                          
-20219 SYSMAN  PACKAGE    MGMT_GLOBAL              GRANT_FAILED                       281 PRAGMA EXCEPTION_INIT(GRANT_FAILED, -20219);                         
-20220 SYSMAN  PACKAGE    MGMT_GLOBAL              REVOKE_FAILED                      286 PRAGMA EXCEPTION_INIT(REVOKE_FAILED, -20220);                        
-20221 SYSMAN  PACKAGE    MGMT_GLOBAL              INSUFFICIENT_PRIVILEGES            291 PRAGMA EXCEPTION_INIT(INSUFFICIENT_PRIVILEGES, -20221);              
-20222 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_PRIVILEGE_TYPE             296 PRAGMA EXCEPTION_INIT(INVALID_PRIVILEGE_TYPE, -20222);               
-20223 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_PRIVILEGE                  301 PRAGMA EXCEPTION_INIT(INVALID_PRIVILEGE, -20223);                    
-20224 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_TARGET                     306 PRAGMA EXCEPTION_INIT(INVALID_TARGET, -20224);                       
-20225 SYSMAN  PACKAGE    MGMT_GLOBAL              PRIV_DOES_NOT_EXIST                311 PRAGMA EXCEPTION_INIT(PRIV_DOES_NOT_EXIST, -20225);                  
-20226 SYSMAN  PACKAGE    MGMT_GLOBAL              CANT_DROP_YOURSELF                 316 PRAGMA EXCEPTION_INIT(CANT_DROP_YOURSELF, -20226);                   
-20227 SYSMAN  PACKAGE    MGMT_GLOBAL              ALREADY_EXISTS                     321 PRAGMA EXCEPTION_INIT(ALREADY_EXISTS, -20227);                       
-20228 SYSMAN  PACKAGE    MGMT_GLOBAL              CIRCULAR_ROLE                      326 PRAGMA EXCEPTION_INIT(CIRCULAR_ROLE, -20228);                        
-20229 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_GROUP                      331 PRAGMA EXCEPTION_INIT(INVALID_GROUP, -20229);                        
-20230 SYSMAN  PACKAGE    MGMT_GLOBAL              CREATE_FAILED                      336 PRAGMA EXCEPTION_INIT(CREATE_FAILED, -20230);                        
-20231 SYSMAN  PACKAGE    MGMT_GLOBAL              USER_EXISTS                        341 PRAGMA EXCEPTION_INIT(USER_EXISTS, -20231);                          
-20232 SYSMAN  PACKAGE    MGMT_GLOBAL              ROLE_EXISTS                        346 PRAGMA EXCEPTION_INIT(ROLE_EXISTS, -20232);                          
-20233 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_PARAMS                     352 PRAGMA EXCEPTION_INIT(INVALID_PARAMS, -20233);                       
-20234 SYSMAN  PACKAGE    MGMT_GLOBAL              DUPLICATE_BASELINE_NAME            357 PRAGMA EXCEPTION_INIT(DUPLICATE_BASELINE_NAME, -20234);              
-20235 SYSMAN  PACKAGE    MGMT_GLOBAL              BASELINE_DOES_NOT_EXIST            363 PRAGMA EXCEPTION_INIT(BASELINE_DOES_NOT_EXIST, -20235);              
-20236 SYSMAN  PACKAGE    MGMT_GLOBAL              DUPLICATE_DEVICE_NAME              369 PRAGMA EXCEPTION_INIT(DUPLICATE_DEVICE_NAME, -20236);                
-20237 SYSMAN  PACKAGE    MGMT_GLOBAL              DEVICE_DOES_NOT_EXIST              375 PRAGMA EXCEPTION_INIT(DEVICE_DOES_NOT_EXIST, -20237);                
-20238 SYSMAN  PACKAGE    MGMT_GLOBAL              TARGET_BEING_DELETED               381 PRAGMA EXCEPTION_INIT(TARGET_BEING_DELETED, -20238);                 
-20239 SYSMAN  PACKAGE    MGMT_GLOBAL              TARGET_BEING_MOVED                 387 PRAGMA EXCEPTION_INIT(TARGET_BEING_MOVED, -20239);                   
-20242 SYSMAN  PACKAGE    MGMT_GLOBAL              TARGET_CANNOT_BE_DELETED           401 PRAGMA EXCEPTION_INIT(TARGET_CANNOT_BE_DELETED, -20242);             
-20247 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_EMD_URL                    407 PRAGMA EXCEPTION_INIT(INVALID_EMD_URL, -20247);                      
-20248 SYSMAN  PACKAGE    MGMT_GLOBAL              MISSING_EM_KEY                     413 PRAGMA EXCEPTION_INIT(MISSING_EM_KEY, -20248);                       
-20249 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_EM_KEY                     419 PRAGMA EXCEPTION_INIT(INVALID_EM_KEY, -20249);                       
-20300 SYSMAN  PACKAGE    MGMT_GLOBAL              RULE_DOES_NOT_EXIST                425 PRAGMA EXCEPTION_INIT(RULE_DOES_NOT_EXIST, -20300);                  
-20301 SYSMAN  PACKAGE    MGMT_GLOBAL              DUPLICATE_RULE_NAME                431 PRAGMA EXCEPTION_INIT(DUPLICATE_RULE_NAME, -20301);                  
-20302 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_RULE_DATA                  437 PRAGMA EXCEPTION_INIT(INVALID_RULE_DATA, -20302);                    
-20303 SYSMAN  PACKAGE    MGMT_GLOBAL              INSUFFICIENT_PRIVILEGES            443 -- PRAGMA EXCEPTION_INIT(INSUFFICIENT_PRIVILEGES, -20303);  
-20400 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_JOB_TYPE                   533 PRAGMA EXCEPTION_INIT(INVALID_JOB_TYPE, -20400);                     
-20401 SYSMAN  PACKAGE    MGMT_GLOBAL              JOB_EXISTS                         538 PRAGMA EXCEPTION_INIT(JOB_EXISTS, -20401);                           
-20402 SYSMAN  PACKAGE    MGMT_GLOBAL              JOB_PARAM_MISSING                  543 PRAGMA EXCEPTION_INIT(JOB_PARAM_MISSING, -20402);                    
-20403 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_JOB                        548 PRAGMA EXCEPTION_INIT(INVALID_JOB, -20403);                          
-20404 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_PARAMS_IN_PARAM_SRC        554 PRAGMA EXCEPTION_INIT(INVALID_PARAMS_IN_PARAM_SRC, -20404);          
-20405 SYSMAN  PACKAGE    MGMT_GLOBAL              SQL_EXECUTION_ERROR                560 PRAGMA EXCEPTION_INIT(SQL_EXECUTION_ERROR, -20405);                  
-20406 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_TARGETS_IN_JOB             565 PRAGMA EXCEPTION_INIT(INVALID_TARGETS_IN_JOB, -20406);               
-20407 SYSMAN  PACKAGE    MGMT_GLOBAL              INCORRECT_VALUES                   571 PRAGMA EXCEPTION_INIT(INCORRECT_VALUES, -20407);                     
-20408 SYSMAN  PACKAGE    MGMT_GLOBAL              SUSPEND_FINISHED_JOB               576 PRAGMA EXCEPTION_INIT(SUSPEND_FINISHED_JOB, -20408);                 
-20409 SYSMAN  PACKAGE    MGMT_GLOBAL              RESTART_INVALID_JOB                582 PRAGMA EXCEPTION_INIT(RESTART_INVALID_JOB, -20409);                  
-20410 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_SCHEDULE                   587 PRAGMA EXCEPTION_INIT(INVALID_SCHEDULE, -20410);                     
-20411 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_PARAMETER                  592 PRAGMA EXCEPTION_INIT(INVALID_PARAMETER, -20411);                    
-20412 SYSMAN  PACKAGE    MGMT_GLOBAL              INSUFFICIENT_JOB_PRIVS             597 PRAGMA EXCEPTION_INIT(INSUFFICIENT_JOB_PRIVS, -20412);               
-20413 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_PARAMS_IN_SEC              602 PRAGMA EXCEPTION_INIT(INVALID_PARAMS_IN_SEC, -20413);                
-20414 SYSMAN  PACKAGE    MGMT_GLOBAL              ACTIVE_EXECUTIONS_EXIST            607 PRAGMA EXCEPTION_INIT(ACTIVE_EXECUTIONS_EXIST, -20414);              
-20415 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_EXECUTION                  612 PRAGMA EXCEPTION_INIT(INVALID_EXECUTION, -20415);                    
-20416 SYSMAN  PACKAGE    MGMT_GLOBAL              PURGE_POLICY_EXISTS                617 PRAGMA EXCEPTION_INIT(PURGE_POLICY_EXISTS, -20416);                  
-20417 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_PURGE_CRITERION            622 PRAGMA EXCEPTION_INIT(INVALID_PURGE_CRITERION, -20417);              
-20418 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_EVENT                      628 PRAGMA EXCEPTION_INIT(INVALID_EVENT, -20418);                        
-20419 SYSMAN  PACKAGE    MGMT_GLOBAL              EXEC_LOCK                          633 PRAGMA EXCEPTION_INIT(EXEC_LOCK, -20419);                            
-20420 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_PARAMS_IN_LOCK             638 PRAGMA EXCEPTION_INIT(INVALID_PARAMS_IN_LOCK, -20420);               
-20421 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_JOB_TYPE                   643 PRAGMA EXCEPTION_INIT(INVALID_JOB_TYPE, -20421);                     
-20422 SYSMAN  PACKAGE    MGMT_GLOBAL              JOB_SUSPENDED                      648 PRAGMA EXCEPTION_INIT(JOB_SUSPENDED, -20422);                        
-20423 SYSMAN  PACKAGE    MGMT_GLOBAL              RESTART_RESTART_FAILED_JOB         654 PRAGMA EXCEPTION_INIT(RESTART_RESTART_FAILED_JOB, -20423);           
-20424 SYSMAN  PACKAGE    MGMT_GLOBAL              EDIT_EXPIRED_JOB                   659 PRAGMA EXCEPTION_INIT(EDIT_EXPIRED_JOB, -20424);                     
-20425 SYSMAN  PACKAGE    MGMT_GLOBAL              JOB_CREATE_FAILED                  664 PRAGMA EXCEPTION_INIT(JOB_CREATE_FAILED, -20425);                    
-20451 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_FLATTENING_INPUT           671 PRAGMA EXCEPTION_INIT(INVALID_FLATTENING_INPUT, -20451);             
-20452 SYSMAN  PACKAGE    MGMT_GLOBAL              ONLY_ONE_TARGET_INPUT              675 PRAGMA EXCEPTION_INIT(ONLY_ONE_TARGET_INPUT, -20452);                
-20500 SYSMAN  PACKAGE    MGMT_GLOBAL              TARGET_ALREADY_EXISTS              683 PRAGMA EXCEPTION_INIT(TARGET_ALREADY_EXISTS, -20500);                
-20501 SYSMAN  PACKAGE    MGMT_GLOBAL              DUPLICATE_TARGET                   688 PRAGMA EXCEPTION_INIT(DUPLICATE_TARGET, -20501);                     
-20502 SYSMAN  PACKAGE    MGMT_GLOBAL              MULTIPLE_AGENTS_PER_URL            693 PRAGMA EXCEPTION_INIT(MULTIPLE_AGENTS_PER_URL, -20502);              
-20503 SYSMAN  PACKAGE    MGMT_GLOBAL              ACTION_NOT_SUPP                    698 PRAGMA EXCEPTION_INIT(ACTION_NOT_SUPP, -20503);                      
-20600 SYSMAN  PACKAGE    MGMT_GLOBAL              TARGET_DELETION_IN_PROG            715 PRAGMA EXCEPTION_INIT(TARGET_DELETION_IN_PROG, -20600);              
-20601 SYSMAN  PACKAGE    MGMT_GLOBAL              DUPLICATE_RECORD                   727 PRAGMA EXCEPTION_INIT(DUPLICATE_RECORD, -20601);                     
-20602 SYSMAN  PACKAGE    MGMT_GLOBAL              UPDATE_RECORD                      737 PRAGMA EXCEPTION_INIT(UPDATE_RECORD, -20602);                        
-20603 SYSMAN  PACKAGE    MGMT_GLOBAL              UPDATE_TZRGN                       746 PRAGMA EXCEPTION_INIT(UPDATE_TZRGN, -20603);                         
-20604 SYSMAN  PACKAGE    MGMT_GLOBAL              OVERLAPPING_METRIC_DEF             755 PRAGMA EXCEPTION_INIT(OVERLAPPING_METRIC_DEF, -20604);               
-20610 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_SEVERITY_CODE              767 PRAGMA EXCEPTION_INIT(INVALID_SEVERITY_CODE, -20610);                
-20611 SYSMAN  PACKAGE    MGMT_GLOBAL              INCONSISTANT_SEVERITY              778 PRAGMA EXCEPTION_INIT(INCONSISTANT_SEVERITY, -20611);                
-20612 SYSMAN  PACKAGE    MGMT_GLOBAL              INTERNAL_SEVERITY                  788 PRAGMA EXCEPTION_INIT(INTERNAL_SEVERITY, -20612);                    
-20613 SYSMAN  PACKAGE    MGMT_GLOBAL              UNKNOWN_TARGET                     798 PRAGMA EXCEPTION_INIT(UNKNOWN_TARGET, -20613);                       
-20614 SYSMAN  PACKAGE    EM_MASTER_AGENT          NON_MASTER_AGENT                     6 PRAGMA EXCEPTION_INIT(NON_MASTER_AGENT, -20614);                     
-20614 SYSMAN  PACKAGE    MGMT_GLOBAL              NON_MASTER_AGENT                   809 PRAGMA EXCEPTION_INIT(NON_MASTER_AGENT, -20614);                     
-20615 SYSMAN  PACKAGE    MGMT_GLOBAL              SEVERITY_IN_BLACKOUT               820 PRAGMA EXCEPTION_INIT(SEVERITY_IN_BLACKOUT, -20615);                 
-20617 SYSMAN  PACKAGE    MGMT_GLOBAL              SERVERITY_OUT_ORDER                830 PRAGMA EXCEPTION_INIT(SERVERITY_OUT_ORDER, -20617);                  
-20618 SYSMAN  PACKAGE    MGMT_GLOBAL              AGENT_DELETION_IN_PROG             838 PRAGMA EXCEPTION_INIT(AGENT_DELETION_IN_PROG, -20618);               
-20619 SYSMAN  PACKAGE    MGMT_GLOBAL              STALE_TARGET_ADDTION_EXCEPTION     845 PRAGMA EXCEPTION_INIT(STALE_TARGET_ADDTION_EXCEPTION, -20619);       
-20631 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_UNRCH_CLR_VIOL             857 PRAGMA EXCEPTION_INIT(INVALID_UNRCH_CLR_VIOL, -20631);               
-20700 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_BLACKOUT_REASON            868 PRAGMA EXCEPTION_INIT(INVALID_BLACKOUT_REASON, -20700);              
-20701 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_BLACKOUT                   873 PRAGMA EXCEPTION_INIT(INVALID_BLACKOUT, -20701);                     
-20702 SYSMAN  PACKAGE    MGMT_GLOBAL              BLACKOUT_STOPPED                   879 PRAGMA EXCEPTION_INIT(BLACKOUT_STOPPED, -20702);                     
-20703 SYSMAN  PACKAGE    MGMT_GLOBAL              BLACKOUT_NOT_EXIST                 884 PRAGMA EXCEPTION_INIT(BLACKOUT_NOT_EXIST, -20703);                   
-20704 SYSMAN  PACKAGE    MGMT_GLOBAL              BLACKOUT_NOT_STOPPED               890 PRAGMA EXCEPTION_INIT(BLACKOUT_NOT_STOPPED, -20704);                 
-20705 SYSMAN  PACKAGE    MGMT_GLOBAL              BLACKOUT_PENDING_EDIT              896 PRAGMA EXCEPTION_INIT(BLACKOUT_PENDING_EDIT, -20705);                
-20706 SYSMAN  PACKAGE    MGMT_GLOBAL              BLACKOUT_STOP_PENDING              902 PRAGMA EXCEPTION_INIT(BLACKOUT_STOP_PENDING, -20706);                
-20707 SYSMAN  PACKAGE    MGMT_GLOBAL              BLACKOUT_STOP_FAILED               906 PRAGMA EXCEPTION_INIT(BLACKOUT_STOP_FAILED, -20707);                 
-20708 SYSMAN  PACKAGE    MGMT_GLOBAL              BLACKOUT_START_PROCESS             910 PRAGMA EXCEPTION_INIT(BLACKOUT_START_PROCESS, -20708);               
-20709 SYSMAN  PACKAGE    MGMT_GLOBAL              BLKOUT_NOT_CREATED_USER            914 PRAGMA EXCEPTION_INIT(BLKOUT_NOT_CREATED_USER, -20709);              
-20710 SYSMAN  PACKAGE    MGMT_GLOBAL              BLKOUT_STARTED_AT_AGENT            918 PRAGMA EXCEPTION_INIT(BLKOUT_STARTED_AT_AGENT, -20710);              
-20711 SYSMAN  PACKAGE    MGMT_GLOBAL              BLKOUT_INVALID_STATE_MOD           922 PRAGMA EXCEPTION_INIT(BLKOUT_INVALID_STATE_MOD, -20711);             
-20712 SYSMAN  PACKAGE    MGMT_GLOBAL              BLKOUT_INVALID_STATE_DEL           926 PRAGMA EXCEPTION_INIT(BLKOUT_INVALID_STATE_DEL, -20712);             
-20713 SYSMAN  PACKAGE    MGMT_GLOBAL              BLKOUT_INVALID_STATE_STOP          930 PRAGMA EXCEPTION_INIT(BLKOUT_INVALID_STATE_STOP, -20713);            
-20714 SYSMAN  PACKAGE    MGMT_GLOBAL              BLKOUT_NO_PRIVS_SEL_TGTS           934 PRAGMA EXCEPTION_INIT(BLKOUT_NO_PRIVS_SEL_TGTS, -20714);             
-20715 SYSMAN  PACKAGE    MGMT_GLOBAL              BLKOUT_NO_PRIVS_HOST_TGTS          938 PRAGMA EXCEPTION_INIT(BLKOUT_NO_PRIVS_HOST_TGTS, -20715);            
-20716 SYSMAN  PACKAGE    MGMT_GLOBAL              BLKOUT_ALREADY_EXISTS              942 PRAGMA EXCEPTION_INIT(BLKOUT_ALREADY_EXISTS, -20716);                
-20717 SYSMAN  PACKAGE    MGMT_GLOBAL              BLK_INVALID_SCHEDULE               947 PRAGMA EXCEPTION_INIT(BLK_INVALID_SCHEDULE, -20717);                 
-20718 SYSMAN  PACKAGE    MGMT_GLOBAL              BLKOUT_CREATE_FAILED               952 PRAGMA EXCEPTION_INIT(BLKOUT_CREATE_FAILED, -20718);                 
-20800 SYSMAN  PACKAGE    MGMT_GLOBAL              SNAPSHOT_LOCK                      960 PRAGMA EXCEPTION_INIT(SNAPSHOT_LOCK, -20800);                        
-20801 SYSMAN  PACKAGE    MGMT_GLOBAL              SNAPSHOT_MISSING                   964 PRAGMA EXCEPTION_INIT(SNAPSHOT_MISSING, -20801);                     
-20900 SYSMAN  PACKAGE    MGMT_GLOBAL              INVALID_CRED_SET                   973 PRAGMA EXCEPTION_INIT(INVALID_CRED_SET, -20900);                     
-20999 SYSMAN  PACKAGE    MGMT_JOB_UI_RUNS         ASSERTFAIL                          32 PRAGMA EXCEPTION_INIT(ASSERTFAIL, -20999);                           

125 rows selected.
125 ORA custom numbers are reserved for original Oracle product.

The End

As a conclusion two things has to be said:
  1. Almost all custom exceptions are in SYSMAN schema, what is good.
  2. Only one custom exception is in SYS schema and this has to kept in mind if programming any exception in SYS schema (not to advisable but very possible)
  3. Huge number of custom ORA exceptions in SYSMAN schema tells me that OEM is not original Oracle kernel product but more like "Add on"-whatever marketing people from Oracle try to say about that.
Hope this helps someone.

Cheers!

1 comment :

  1. Keep in mind that wrapped source is not covered in this case.
    8(

    ReplyDelete

Zagreb u srcu!

Copyright © 2009-2014 Damir Vadas

All rights reserved.


Sign by Danasoft - Get Your Sign