1 Handling Exceptions Part F. 2 Handling Exceptions with PL/SQL What is an exception? Identifier in PL/SQL that is raised during execution What is an.

Slides:



Advertisements
Similar presentations
BD05/06 PL/SQL  Introduction  Structure of a block  Variables and types  Accessing the database  Control flow  Cursors  Exceptions  Procedures.
Advertisements

Chapter 4B: More Advanced PL/SQL Programming
PL/SQL Agenda: Basic PL/SQL block structure
LOCKS Locks are mechanisms used to ensure data integrity while allowing maximum concurrent access to data. Oracle's locking is fully automatic and requires.
Exception types In Oracle PL/SQL. Types of exceptions Named system exceptions –Raised as a result of an error in PL/SQL or RDBMS processing. Named programmer-defined.
Introduction to PL/SQL
Exception Handling in PL/SQL. POINTS TO DISCUSS What is Exception Handling Structure of Exception Handling Section Types of Exceptions.
PL/SQL block has the following structure: DECLARE Declaration statements BEGIN Executable statements EXCEPTION Exception-handling statements END ;
Bordoloi and Bock CURSORS. Bordoloi and Bock CURSOR MANIPULATION To process an SQL statement, ORACLE needs to create an area of memory known as the context.
PL / SQL P rocedural L anguage / S tructured Q uery L anguage Chapter 7 in Lab Reference.
Bordoloi and Bock EXCEPTIONS. Bordoloi and Bock Errors Two types of errors can be found in a program: compilation errors and runtime errors. There is.
Cursor and Exception Handling By Nidhi Bhatnagar.
1 Introduction to PL/SQL. 2  Procedural programming language  Uses detailed instructions  Processes statements sequentially  Combines SQL commands.
Oracle10g Developer: PL/SQL Programming1 Objectives Manipulating data with cursors Managing errors with exception handlers Addressing exception-handling.
Chapter 4 Cursors and Exception Handling Oracle10g Developer:
Exceptions Oracle Database PL/SQL 10g Programming Chapter 7.
EE Copyright س Oracle Corporation, All rights reserved. ® Review of PL/SQL.
1 Copyright © 2004, Oracle. All rights reserved. Introduction to PL/SQL.
Chapter 4: Introduction to PL/SQL
Overview · What is PL/SQL · Advantages of PL/SQL · Basic Structure of a PL/SQL Block · Procedure · Function · Anonymous Block · Types of Block · Declaring.
L/O/G/O Working with Composite Data Types. Objectives After completing this lesson, you should be able to do the following: –Create user-defined PL/SQL.
CSIT 313 DB PROGRAMMING EXCEPTION HANDLING. In PL/SQL, an error condition is called an exception. An exception can be either –internally defined (by the.
1 Copyright © 2004, Oracle. All rights reserved. Introduction to PL/SQL.
Trapping Oracle Server Exceptions. 2 home back first prev next last What Will I Learn? Describe and provide an example of an error defined by the Oracle.
PL/SQL Block Structure DECLARE - Optional Variables, cursors, user-defined exceptions BEGIN - Mandatory SQL Statements PL/SQL Statements EXCEPTIONS - Optional.
Manipulating Data in PL/SQL. 2 home back first prev next last What Will I Learn? Construct and execute PL/SQL statements that manipulate data with DML.
Chapter 15 Introduction to PL/SQL. Chapter Objectives  Explain the benefits of using PL/SQL blocks versus several SQL statements  Identify the sections.
Handling Exceptions. 2 home back first prev next last What Will I Learn? Describe several advantages of including exception handling code in PL/SQL Describe.
Fall 2001Database Systems1 Triggers Assertions –Assertions describe rules that should hold for a given database. –An assertion is checked anytime a table.
Oracle 8i Exception Handling. General Syntax DECLARE --- BEGIN --- EXCEPTION WHEN exception_name1 THEN -Error handling statements WHEN exception_name2.
Using SQL in PL/SQL ITEC 224 Database Programming.
PL/SQLPL/SQL Oracle11g: PL/SQL Programming Chapter 4 Cursors and Exception Handling.
Chapter 16 Cursors and Exceptions. Chapter Objectives  Determine when an explicit cursor is required  Declare, open, and close an explicit cursor 
Introduction to Explicit Cursors. 2 home back first prev next last What Will I Learn? Distinguish between an implicit and an explicit cursor Describe.
DATABASE PROGRAMS CS 260 Database Systems. Overview  Introduction  Anonymous blocks  Oracle’s PL/SQL language basics  Conditions and loops  Cursors.
Retrieving Data in PL/SQL. 2 home back first prev next last What Will I Learn? In this lesson, you will learn to: –Recognize the SQL statements that can.
implicit and an explicit cursor
Chapter 18: Exception Handling1 Chapter Eighteen Exception Handling Objective: – Define exceptions – List types of exception handlers – Trap errors – Exception.
1 ITBIS373 Database Development Lecture 2 – Chapter 4B Introduction to PL/SQL.
Handling Exceptions. Objectives What is exception Types of exceptions How to handle exceptions Trapping pre defined oracle errors.
1 PL/SQL Part C Scope and Interacting with the Oracle Server.
PRACTICE OVERVIEW PL/SQL Part Your stored procedure, GET_BUDGET, has a logic problem and must be modified. The script that contains the procedure.
Copyright  Oracle Corporation, All rights reserved. 23 Handling Exceptions.
Introduction to PL/SQL Francis Thottungal. The outline The basic PL/SQL code structure is : DECLARE -- optional, which declares and define variables,
Kingdom of Saudi Arabia Ministry of Higher Education Al-Imam Muhammad Ibn Saud Islamic University College of Computer and Information Sciences Overview.
Introduction to PL/SQL N. Dimililer. About PL/SQL –PL/SQL is an extension to SQL with design features of programming languages. –Data manipulation and.
DB Programming Course Lecture 4. Errors Two types of errors can be found in a program: compilation errors and runtime errors. There is a special section.
1 Copyright © 2004, Oracle. All rights reserved. PL/SQL Programming Concepts: Review.
Free Powerpoint Templates Page 1 Free Powerpoint Templatesبسم الله الرحمن الرحيم عدد الساعات: 2 نظري+2عملي الرمز:314 حسب المتطلبات:223 حسب (مبادئ قواعد.
ITEC 224 Database Programming
CHAPTER 5 EXCEPTION HANDLING
Interacting with the Oracle8 Server
Interacting with the Oracle Server
Interacting with the Oracle Server
Difference between Oracle PL/SQL and MySQL
Interacting with the Oracle Server
Handling Exceptions.
Oracle11g: PL/SQL Programming Chapter 4 Cursors and Exception Handling.
Oracle9i Developer: PL/SQL Programming Chapter 3 PL/SQL Processing.
Handling Exceptions.
Database Programming PL SQL.
Database Management Systems 2
Interacting with the Oracle Server
Handling Exceptions.
Handling Exceptions.
Chapter 4: Introduction to PL/SQL
Database Management Systems 2
Handling Exceptions.
PRACTICE OVERVIEW PL/SQL Part - 1.
Database Programming Using Oracle 11g
Presentation transcript:

1 Handling Exceptions Part F

2 Handling Exceptions with PL/SQL What is an exception? Identifier in PL/SQL that is raised during execution What is an exception? Identifier in PL/SQL that is raised during execution How is it raised? How is it raised? An Oracle error occurs. An Oracle error occurs. For example, if the error ORA occurs when no rows are retrieved from the database in a SELECT statement, then PL/SQL raises the exception NO_DATA_FOUND. For example, if the error ORA occurs when no rows are retrieved from the database in a SELECT statement, then PL/SQL raises the exception NO_DATA_FOUND. You raise it explicitly. You raise it explicitly. The exception being raised may be either user defined or predefined. The exception being raised may be either user defined or predefined. How do you handle it? How do you handle it? Trap it with a handler. Trap it with a handler. What is an exception? Identifier in PL/SQL that is raised during execution What is an exception? Identifier in PL/SQL that is raised during execution How is it raised? How is it raised? An Oracle error occurs. An Oracle error occurs. For example, if the error ORA occurs when no rows are retrieved from the database in a SELECT statement, then PL/SQL raises the exception NO_DATA_FOUND. For example, if the error ORA occurs when no rows are retrieved from the database in a SELECT statement, then PL/SQL raises the exception NO_DATA_FOUND. You raise it explicitly. You raise it explicitly. The exception being raised may be either user defined or predefined. The exception being raised may be either user defined or predefined. How do you handle it? How do you handle it? Trap it with a handler. Trap it with a handler.

3 Handling Exceptions Trap the exception Trap the exception If the exception is raised in the executable section of the block and there is no corresponding exception handler, the PL/SQL block terminates with failure and the exception is propagated to the calling environment. DECLARE BEGIN END; Exception is raised EXCEPTION Exception is trapped

4 Exception Types Predefined Oracle Server Predefined Oracle Server Non-predefined Oracle Server Non-predefined Oracle Server User-defined User-defined Predefined Oracle Server Predefined Oracle Server Non-predefined Oracle Server Non-predefined Oracle Server User-defined User-defined} Implicitly raised Explicitly raised

5 Predefined Exceptions Most common errors that occur in programs Most common errors that occur in programs PL/SQL language: PL/SQL language: Assigns exception name Assigns exception name Provides built-in exception handler for each predefined exception Provides built-in exception handler for each predefined exception System automatically displays error message informing user of nature of problem System automatically displays error message informing user of nature of problem Can create exception handlers to display alternate error messages Can create exception handlers to display alternate error messages

6 Trapping Exceptions EXCEPTION WHEN exception1 [OR exception2...] THEN statement1; statement2;... [WHEN exception3 [OR exception4...] THEN statement1; statement2;...] [WHEN OTHERS THEN statement1; statement2;...] EXCEPTION WHEN exception1 [OR exception2...] THEN statement1; statement2;... [WHEN exception3 [OR exception4...] THEN statement1; statement2;...] [WHEN OTHERS THEN statement1; statement2;...] Syntax Syntax

7 Trapping Exceptions Guidelines WHEN OTHERS is the last clause. WHEN OTHERS is the last clause. EXCEPTION keyword starts exception- handling section. EXCEPTION keyword starts exception- handling section. Several exception handlers are allowed. Several exception handlers are allowed. Only one handler is processed before leaving the block. Only one handler is processed before leaving the block. You can have at most one OTHERS clause. You can have at most one OTHERS clause. Exceptions cannot appear in assignment statements or SQL statements. Exceptions cannot appear in assignment statements or SQL statements. WHEN OTHERS is the last clause. WHEN OTHERS is the last clause. EXCEPTION keyword starts exception- handling section. EXCEPTION keyword starts exception- handling section. Several exception handlers are allowed. Several exception handlers are allowed. Only one handler is processed before leaving the block. Only one handler is processed before leaving the block. You can have at most one OTHERS clause. You can have at most one OTHERS clause. Exceptions cannot appear in assignment statements or SQL statements. Exceptions cannot appear in assignment statements or SQL statements.

8 Trapping Predefined Oracle Server Errors  Common errors that have been given predefined names Reference the standard name in the exception- handling routine. Reference the standard name in the exception- handling routine. Sample predefined exceptions: Sample predefined exceptions:  Common errors that have been given predefined names Reference the standard name in the exception- handling routine. Reference the standard name in the exception- handling routine. Sample predefined exceptions: Sample predefined exceptions:

9 Predefined Exception BEGIN EXCEPTION WHEN NO_DATA_FOUND THEN statement1; statement2; WHEN TOO_MANY_ROWS THEN statement1; WHEN OTHERS THEN statement1; statement2; statement3; END; Syntax Syntax

10 Undefined Exceptions Less common errors Less common errors Do not have predefined names Do not have predefined names Must explicitly declare exception in program’s declaration section Must explicitly declare exception in program’s declaration section Associate new exception with specific Oracle error code Associate new exception with specific Oracle error code Create exception handler in exception section Create exception handler in exception section Using same syntax as for predefined exceptions Using same syntax as for predefined exceptions

11 Trapping Non-Predefined Oracle Server Errors Declare Name the exception Name the exception Associate Code the PRAGMA EXCEPTION_INIT Code the PRAGMA EXCEPTION_INIT Declarative section Reference Handle the raised exception Handle the raised exception Exception-handlingsection Less-common errors that have not been given predefined names

12 DECLARE e_emps_remainingEXCEPTION; PRAGMA EXCEPTION_INIT ( e_emps_remaining, -2292); v_deptno dept.deptno%TYPE := &p_deptno; BEGIN DELETE FROM dept WHERE deptno = v_deptno; COMMIT; EXCEPTION WHEN e_emps_remaining THEN DBMS_OUTPUT.PUT_LINE ('Cannot remove dept ' || TO_CHAR(v_deptno) || '. Employees exist. '); END; DECLARE e_emps_remainingEXCEPTION; PRAGMA EXCEPTION_INIT ( e_emps_remaining, -2292); v_deptno dept.deptno%TYPE := &p_deptno; BEGIN DELETE FROM dept WHERE deptno = v_deptno; COMMIT; EXCEPTION WHEN e_emps_remaining THEN DBMS_OUTPUT.PUT_LINE ('Cannot remove dept ' || TO_CHAR(v_deptno) || '. Employees exist. '); END; Non-Predefined Error Trap for Oracle Server error number 2292, an integrity constraint violation. Trap for Oracle Server error number –2292, an integrity constraint violation. e_emps_remaining EXCEPTION; 1 PRAGMA EXCEPTION_INIT ( e_emps_remaining, -2292); 2 e_emps_remaining 3

13 Functions for Trapping Exceptions SQLCODE Returns the numeric value for the error code SQLCODE Returns the numeric value for the error code SQLERRM Returns the message associated with the error number SQLERRM Returns the message associated with the error number SQLCODE Returns the numeric value for the error code SQLCODE Returns the numeric value for the error code SQLERRM Returns the message associated with the error number SQLERRM Returns the message associated with the error number

14 Functions for Trapping Exceptions DECLARE v_error_code NUMBER; v_error_message VARCHAR2(255); BEGIN... EXCEPTION... WHEN OTHERS THEN ROLLBACK; v_error_code := SQLCODE ; v_error_message := SQLERRM ; INSERT INTO errors VALUES(v_error_code, v_error_message); END; Example Example SQLCODE SQLERRM

15 User-defined Exceptions Do not raise Oracle runtime error Do not raise Oracle runtime error Require exception handling to Require exception handling to Enforce business rules Enforce business rules Ensure integrity of database Ensure integrity of database

16 Trapping User-Defined Exceptions Name the exception Name the exception Declare Declarativesection Raise Explicitly raise the exception by using the RAISE statement Explicitly raise the exception by using the RAISE statement Executablesection Reference Handle the raised exception Handle the raised exception Exception-handlingsection

17 User-Defined Exception DECLARE e_invalid_product EXCEPTION; BEGIN UPDATEproduct SETdescrip = '&product_description' WHEREprodid = &product_number; IF SQL%NOTFOUND THEN RAISE e_invalid_product; END IF; COMMIT; EXCEPTION WHEN e_invalid_product THEN DBMS_OUTPUT.PUT_LINE('Invalid product number.'); END; ExampleExample e_invalid_product EXCEPTION; 1 RAISE e_invalid_product; 2 e_invalid_product 3

18 General Syntax for Declaring, Raising, and Handling a User- defined Exception