Oracle Error Handling Raise
user-defined exceptions whose names you decide. For more information, see "Defining Your Own PL/SQL Exceptions". Syntax raise statement ::= Description of the illustration raise_statement.gif Keyword and Parameter Description exception_name A predefined or user-defined exception. For a list of the predefined exceptions, see "Summary of Predefined PL/SQL Exceptions". Usage Notes PL/SQL blocks and subprograms should RAISE an exception only when an error makes it impractical to continue processing. You can code a RAISE statement for a given exception anywhere within the scope of that exception. When an exception is raised, if PL/SQL cannot find a handler for it in the current block, the exception propagates to successive enclosing blocks, until a handler is found or there are no more blocks to search. If no handler is found, PL/SQL returns an unhandled exception error to the host environment. In an exception handler, you can omit the exception name in a RAISE statement, which raises the current exception again. This technique allows you to take some initial corrective action (perhaps just logging the problem), then pass control to another handler that does more extensive correction. When an exception is reraised, the first block searched is the enclosing block, not the current block. Examples For examples, see the following: Example 1-12, "Creating a Stored Subprogram" Example 9-3, "Creating the emp_admin Package" Example 10-3, "Scope of PL/SQL Exceptions" Example 10-9, "Reraising a PL/SQL Exception" Related Topics "Exception Definition" Scripting on this page enhances content navigation, but does not change the content in any way.
errors. The latter are called exceptions. Note: The language of warning and error messages depends on the NLS_LANGUAGE parameter. For information about this parameter, see Oracle Database Globalization Support Guide. Topics Compile-Time Warnings Overview of Exception Handling Internally Defined Exceptions Predefined Exceptions User-Defined Exceptions Redeclared Predefined Exceptions Raising Exceptions Explicitly Exception Propagation Unhandled Exceptions Error Code and Error Message Retrieval Continuing Execution After Handling Exceptions Retrying Transactions After Handling Exceptions See Also: "Exception Handling in Triggers" "Handling http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/raise_statement.htm FORALL Exceptions After FORALL Statement Completes" Tip: If you have problems creating or running PL/SQL code, check the Oracle Database trace files. The USER_DUMP_DEST initialization parameter specifies the current location of the trace files. You can find the value of this parameter by issuing SHOW PARAMETER USER_DUMP_DEST. For more information about trace files, see Oracle Database Performance Tuning Guide. https://docs.oracle.com/cd/E11882_01/appdev.112/e25519/errors.htm Compile-Time Warnings While compiling stored PL/SQL units, the PL/SQL compiler generates warnings for conditions that are not serious enough to cause errors and prevent compilation—for example, using a deprecated PL/SQL feature. To see warnings (and errors) generated during compilation, either query the static data dictionary view *_ERRORS (described in Oracle Database Reference) or, in the SQL*Plus environment, use the command SHOW ERRORS. The message code of a PL/SQL warning has the form PLW-nnnnn. For the message codes of all PL/SQL warnings, see Oracle Database Error Messages. Table 11-1 summarizes the categories of warnings. Table 11-1 Compile-Time Warning Categories Category Description Example SEVERE Condition might cause unexpected action or wrong results. Aliasing problems with parameters PERFORMANCE Condition might cause performance problems. Passing a VARCHAR2 value to a NUMBER column in an INSERT statement INFORMATIONAL Condition does not affect performance or correctness, but you might want to change it to make the code more maintainable. Code that can never run By setting the compilation parameter PLSQL_WARNINGS, you can: Enable and disable all warnings, one or more cate
March 2012 Oracle Magazine Online 2016 2015 2014 2013 2012 2011 2010 January 2012 March 2012 May 2012 July 2012 September 2012 November 2012 As Published In March/April http://www.oracle.com/technetwork/issue-archive/2012/12-mar/o22plsql-1518275.html 2012 TECHNOLOGY: PL/SQL Error Management By Steven Feuerstein Part 6 in a series of articles on understanding and using PL/SQL Even if you write absolutely perfect PL/SQL programs, http://psoug.org/definition/raise.htm it is possible and even likely that something will go wrong and an error will occur when those programs are run. How your code responds to and deals with that error oracle error often spells the difference between a successful application and one that creates all sorts of problems for users as well as developers. This article explores the world of error management in PL/SQL: the different types of exceptions you may encounter; when, why, and how exceptions are raised; how to define your own exceptions; how you can handle exceptions when they occur; oracle error handling and how you can report information about problems back to your users. Exception Overview There are three categories of exceptions in the world of PL/SQL: internally defined, predefined, and user-defined. An internally defined exception is one that is raised internally by an Oracle Database process; this kind of exception always has an error code but does not have a name unless it is assigned one by PL/SQL or your own code. An example of an internally defined exception is ORA-00060 (deadlock detected while waiting for resource). A predefined exception is an internally defined exception that is assigned a name by PL/SQL. Most predefined exceptions are defined in the STANDARD package (a package provided by Oracle Database that defines many common programming elements of the PL/SQL language) and are among the most commonly encountered exceptions. One example is ORA-00001, which is assigned the name DUP_VAL_ON_INDEX in PL/SQL and is raised when a unique index constraint is violated. A user-defined exception is one you have declared in the declaration section of a program unit. User-defined exceptions can be associated with an internally defined
Code Library PHP Code Library JavaScript Code Library Oracle Terms & Definitions Oracle Error Codes PSOUG Community Blogs Oracle Jobs Board PSOUG Forum Oracle User Group Directory Free Oracle Magazines Online Learning Center PSOUG Presentations Advanced Code Search News and Events Sponsors Page Submit Code Contact Us Looking for the original pages? (formerly called "Morgan's Library") You can find them here. Term: RAISE Definition: In Oracle PL/SQL, the RAISE statement is used to explicitly raise an exception within a PL/SQL block. It immediately stops normal execution of a PL/SQL block or subprogram and transfers control to an exception handler. It can be used to raise both system defined and user defined exceptions. If an exception is raised and PL/SQL cannot find a handler for it in the current block, the exception then propagates to successive enclosing blocks, until a handler is found or there are no more blocks to propagate to. If no handler is found, PL/SQL returns an unhandled exception error to the host environment. Example Syntax: RAISE [EXCEPTION NAME] Example Usage: The PL/SQL block below selects an employee corresponding to a given employee IDd. If no employee record is found it raises the NO_DATA_FOUND exception and displays a message. Note that NO_DATA_FOUND is a system defined exception. DECLARE L_EMP VARCHAR2(1000); CURSOR C IS SELECT ENAME FROM EMPLOYEE WHERE EMPNO = 300; BEGIN OPEN C; FETCH C INTO L_EMP; CLOSE C; IF L_EMP IS NULL THEN RAISE NO_DATA_FOUND; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No Employee exists for this employee ID.'); END; No Employee exists for this employee ID. PL/SQL procedure successfully completed. Related Links: Exception Handling: RAISE Examples & Syntax Example using RAISE Exam