Mega Code Archive

 
Categories / Oracle PLSQL / PL SQL
 

This procedure demonstrates the use of RAISE_APPLICATION_ERROR

SQL> CREATE TABLE emp (   2    id         NUMBER PRIMARY KEY,   3    fname VARCHAR2(50),   4    lname  VARCHAR2(50)   5  ); Table created. SQL> SQL> INSERT INTO emp (id, fname, lname)VALUES (1, 'A', 'B'); 1 row created. SQL> INSERT INTO emp (id, fname, lname)VALUES (2, 'C', 'D'); 1 row created. SQL> INSERT INTO emp (id, fname, lname)VALUES (3, 'Enn', 'F'); 1 row created. SQL> INSERT INTO emp (id, fname, lname)VALUES (4, 'G', 'H'); 1 row created. SQL> INSERT INTO emp (id, fname, lname)VALUES (5, 'G', 'Z'); 1 row created. SQL> SQL> CREATE TABLE book (   2    isbn      CHAR(10) PRIMARY KEY,   3    category  VARCHAR2(20),   4    title     VARCHAR2(100),   5    num_pages NUMBER,   6    price     NUMBER,   7    copyright NUMBER(4),   8    emp1   NUMBER,   9    emp2   NUMBER,  10    emp3   NUMBER  11  ); Table created. SQL> SQL> INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2, emp3)   2             VALUES ('1', 'Database', 'Oracle', 563, 39.99, 1999, 1, 2, 3); 1 row created. SQL> INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2)   2             VALUES ('2', 'Database', 'MySQL', 765, 44.99, 1999, 4, 5); 1 row created. SQL> INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2, emp3)   2             VALUES ('3', 'Database', 'SQL Server', 404, 39.99, 2001, 6, 7, 8); 1 row created. SQL> INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2, emp3)   2             VALUES ('4', 'Database', 'SQL', 535, 39.99, 2002, 4, 5, 9); 1 row created. SQL> INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2)   2             VALUES ('5', 'Database', 'Java', 487, 39.99, 2002, 10, 11); 1 row created. SQL> INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2)   2             VALUES ('6', 'Database', 'JDBC', 592, 39.99, 2002, 12, 13); 1 row created. SQL> INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2, emp3)   2             VALUES ('7', 'Database', 'XML', 500, 39.99, 2002, 1, 2, 3); 1 row created. SQL> SQL> SQL> SQL> CREATE OR REPLACE PROCEDURE Verifyemp(p_emp1 IN book.emp1%TYPE,p_emp2 IN book.emp2%TYPE,p_emp3 IN book.emp3%TYPE) AS   2   3    v_empCount NUMBER;   4  BEGIN   5    IF p_emp1 IS NULL THEN   6      RAISE_APPLICATION_ERROR(-20000, 'emp1 cannot be null');   7    ELSE   8      SELECT COUNT(*) INTO v_empCount FROM emp WHERE id = p_emp1;   9      IF v_empCount = 0 THEN  10        RAISE_APPLICATION_ERROR(-20001,'emp1 ' || p_emp1 || ' does not exist');  11      END IF;  12    END IF;  13  14    IF p_emp1 = p_emp2 THEN  15      RAISE_APPLICATION_ERROR (-20002,'emp1 ' || p_emp1 || ' and emp2 ' || p_emp2 ||' are duplicates');  16    ELSIF p_emp1 = p_emp3 THEN  17      RAISE_APPLICATION_ERROR (-20002,'emp1 ' || p_emp1 || ' and emp3 ' || p_emp3 ||' are duplicates');  18    ELSIF p_emp2 = p_emp3 THEN  19      RAISE_APPLICATION_ERROR (-20002,'emp2 ' || p_emp2 || ' and emp3 ' || p_emp3 ||' are duplicates');  20    END IF;  21  END Verifyemp;  22  / Procedure created. SQL> SQL> drop table book; Table dropped. SQL> drop table emp; Table dropped. SQL>