<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FPL_SQL%2FRaise</id>
		<title>Oracle PL/SQL/PL SQL/Raise - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FPL_SQL%2FRaise"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/PL_SQL/Raise&amp;action=history"/>
		<updated>2026-07-15T12:14:40Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/PL_SQL/Raise&amp;diff=1885&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/PL_SQL/Raise&amp;diff=1885&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/PL_SQL/Raise&amp;diff=1886&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/PL_SQL/Raise&amp;diff=1886&amp;oldid=prev"/>
				<updated>2010-05-26T09:59:22Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Print out an error message==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      str  varchar2(50);&lt;br /&gt;
  3  begin&lt;br /&gt;
  4      str := &amp;quot;CAT&amp;quot;;&lt;br /&gt;
  5  exception&lt;br /&gt;
  6      when others then&lt;br /&gt;
  7          raise_application_error (-20100, &amp;quot;error#&amp;quot; || sqlcode || &amp;quot; desc: &amp;quot; || sqlerrm);&lt;br /&gt;
  8  end;&lt;br /&gt;
  9  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RAISE_APPLICATION_ERROR==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE myStudent (&lt;br /&gt;
  2    student_id NUMBER(5) NOT NULL,&lt;br /&gt;
  3    department CHAR(3)   NOT NULL,&lt;br /&gt;
  4    course     NUMBER(3) NOT NULL,&lt;br /&gt;
  5    grade      CHAR(1)&lt;br /&gt;
  6    );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10000, &amp;quot;CS&amp;quot;, 102, &amp;quot;A&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10002, &amp;quot;CS&amp;quot;, 102, &amp;quot;B&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10003, &amp;quot;CS&amp;quot;, 102, &amp;quot;C&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10000, &amp;quot;HIS&amp;quot;, 101, &amp;quot;A&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10001, &amp;quot;HIS&amp;quot;, 101, &amp;quot;B&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10002, &amp;quot;HIS&amp;quot;, 101, &amp;quot;B&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE FUNCTION AverageGrade (&lt;br /&gt;
  2    p_Department IN myStudent.department%TYPE,&lt;br /&gt;
  3    p_Course IN myStudent.course%TYPE) RETURN CHAR AS&lt;br /&gt;
  4&lt;br /&gt;
  5    v_AverageGrade CHAR(1);&lt;br /&gt;
  6    v_NumericGrade NUMBER;&lt;br /&gt;
  7    v_Numberlecturer NUMBER;&lt;br /&gt;
  8&lt;br /&gt;
  9    CURSOR c_Grades IS&lt;br /&gt;
 10      SELECT grade&lt;br /&gt;
 11        FROM myStudent&lt;br /&gt;
 12        WHERE department = p_Department&lt;br /&gt;
 13        AND course = p_Course;&lt;br /&gt;
 14  BEGIN&lt;br /&gt;
 15    SELECT COUNT(*)&lt;br /&gt;
 16      INTO v_Numberlecturer&lt;br /&gt;
 17      FROM myStudent&lt;br /&gt;
 18      WHERE department = p_Department&lt;br /&gt;
 19        AND course = p_Course;&lt;br /&gt;
 20&lt;br /&gt;
 21    IF v_Numberlecturer = 0 THEN&lt;br /&gt;
 22      RAISE_APPLICATION_ERROR(-20001, &amp;quot;No lecturer registered for &amp;quot; ||&lt;br /&gt;
 23        p_Department || &amp;quot; &amp;quot; || p_Course);&lt;br /&gt;
 24    END IF;&lt;br /&gt;
 25&lt;br /&gt;
 26    SELECT AVG(DECODE(grade, &amp;quot;A&amp;quot;, 5,&lt;br /&gt;
 27                             &amp;quot;B&amp;quot;, 4,&lt;br /&gt;
 28                             &amp;quot;C&amp;quot;, 3,&lt;br /&gt;
 29                             &amp;quot;D&amp;quot;, 2,&lt;br /&gt;
 30                             &amp;quot;E&amp;quot;, 1))&lt;br /&gt;
 31      INTO v_NumericGrade&lt;br /&gt;
 32      FROM myStudent&lt;br /&gt;
 33      WHERE department = p_Department&lt;br /&gt;
 34      AND course = p_Course;&lt;br /&gt;
 35&lt;br /&gt;
 36    SELECT DECODE(ROUND(v_NumericGrade), 5, &amp;quot;A&amp;quot;,&lt;br /&gt;
 37                                         4, &amp;quot;B&amp;quot;,&lt;br /&gt;
 38                                         3, &amp;quot;C&amp;quot;,&lt;br /&gt;
 39                                         2, &amp;quot;D&amp;quot;,&lt;br /&gt;
 40                                         1, &amp;quot;E&amp;quot;)&lt;br /&gt;
 41      INTO v_AverageGrade&lt;br /&gt;
 42      FROM dual;&lt;br /&gt;
 43&lt;br /&gt;
 44    RETURN v_AverageGrade;&lt;br /&gt;
 45  END AverageGrade;&lt;br /&gt;
 46  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myStudent;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raise different exception depends on value input==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE RaiseIt(p_Exception IN NUMBER) AS&lt;br /&gt;
  2    e_MyException EXCEPTION;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    IF p_Exception = 0 THEN&lt;br /&gt;
  5      NULL;&lt;br /&gt;
  6    ELSIF p_Exception &amp;lt; 0 THEN&lt;br /&gt;
  7      RAISE e_MyException;&lt;br /&gt;
  8    ELSIF p_Exception = 1001 THEN&lt;br /&gt;
  9      RAISE INVALID_CURSOR;&lt;br /&gt;
 10    ELSIF p_Exception = 1403 THEN&lt;br /&gt;
 11      RAISE NO_DATA_FOUND;&lt;br /&gt;
 12    ELSIF p_Exception = 6502 THEN&lt;br /&gt;
 13      RAISE VALUE_ERROR;&lt;br /&gt;
 14    ELSE&lt;br /&gt;
 15      RAISE_APPLICATION_ERROR(-20001, &amp;quot;Exception &amp;quot; || p_Exception);&lt;br /&gt;
 16    END IF;&lt;br /&gt;
 17  END RaiseIt;&lt;br /&gt;
 18  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt; show errors&lt;br /&gt;
No errors.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raise exceptions for wrong parameters==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table Employee(&lt;br /&gt;
  2    ID                 VARCHAR2(4 BYTE)         NOT NULL,&lt;br /&gt;
  3    First_Name         VARCHAR2(10 BYTE),&lt;br /&gt;
  4    Last_Name          VARCHAR2(10 BYTE),&lt;br /&gt;
  5    Start_Date         DATE,&lt;br /&gt;
  6    End_Date           DATE,&lt;br /&gt;
  7    Salary             Number(8,2),&lt;br /&gt;
  8    City               VARCHAR2(10 BYTE),&lt;br /&gt;
  9    Description        VARCHAR2(15 BYTE)&lt;br /&gt;
 10  )&lt;br /&gt;
 11  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2               values (&amp;quot;01&amp;quot;,&amp;quot;Jason&amp;quot;,    &amp;quot;Martin&amp;quot;,  to_date(&amp;quot;19960725&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;20060725&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 1234.56, &amp;quot;Toronto&amp;quot;,  &amp;quot;Programmer&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;02&amp;quot;,&amp;quot;Alison&amp;quot;,   &amp;quot;Mathews&amp;quot;, to_date(&amp;quot;19760321&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19860221&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 6661.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;03&amp;quot;,&amp;quot;James&amp;quot;,    &amp;quot;Smith&amp;quot;,   to_date(&amp;quot;19781212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19900315&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 6544.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;04&amp;quot;,&amp;quot;Celia&amp;quot;,    &amp;quot;Rice&amp;quot;,    to_date(&amp;quot;19821024&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19990421&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 2344.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Manager&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;05&amp;quot;,&amp;quot;Robert&amp;quot;,   &amp;quot;Black&amp;quot;,   to_date(&amp;quot;19840115&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19980808&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 2334.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;06&amp;quot;,&amp;quot;Linda&amp;quot;,    &amp;quot;Green&amp;quot;,   to_date(&amp;quot;19870730&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19960104&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 4322.78,&amp;quot;New York&amp;quot;,  &amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;07&amp;quot;,&amp;quot;David&amp;quot;,    &amp;quot;Larry&amp;quot;,   to_date(&amp;quot;19901231&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19980212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 7897.78,&amp;quot;New York&amp;quot;,  &amp;quot;Manager&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;08&amp;quot;,&amp;quot;James&amp;quot;,    &amp;quot;Cat&amp;quot;,     to_date(&amp;quot;19960917&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;20020415&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 1232.78,&amp;quot;Vancouver&amp;quot;, &amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from Employee&lt;br /&gt;
  2  /&lt;br /&gt;
ID   FIRST_NAME LAST_NAME  START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- ---------- ---------- --------- --------- ---------- ---------- ---------------&lt;br /&gt;
01   Jason      Martin     25-JUL-96 25-JUL-06    1234.56 Toronto    Programmer&lt;br /&gt;
02   Alison     Mathews    21-MAR-76 21-FEB-86    6661.78 Vancouver  Tester&lt;br /&gt;
03   James      Smith      12-DEC-78 15-MAR-90    6544.78 Vancouver  Tester&lt;br /&gt;
04   Celia      Rice       24-OCT-82 21-APR-99    2344.78 Vancouver  Manager&lt;br /&gt;
05   Robert     Black      15-JAN-84 08-AUG-98    2334.78 Vancouver  Tester&lt;br /&gt;
06   Linda      Green      30-JUL-87 04-JAN-96    4322.78 New York   Tester&lt;br /&gt;
07   David      Larry      31-DEC-90 12-FEB-98    7897.78 New York   Manager&lt;br /&gt;
08   James      Cat        17-SEP-96 15-APR-02    1232.78 Vancouver  Tester&lt;br /&gt;
8 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;     CREATE OR REPLACE PROCEDURE add_new_employee&lt;br /&gt;
  2          (employee_id_in IN NUMBER, salary_in IN NUMBER)&lt;br /&gt;
  3      IS&lt;br /&gt;
  4          no_salary EXCEPTION;&lt;br /&gt;
  5&lt;br /&gt;
  6      BEGIN&lt;br /&gt;
  7          IF salary_in = 0 THEN&lt;br /&gt;
  8              RAISE no_salary;&lt;br /&gt;
  9          ELSE&lt;br /&gt;
 10              INSERT INTO employee (id, salary ) VALUES ( employee_id_in, salary_in );&lt;br /&gt;
 11      END IF;&lt;br /&gt;
 12&lt;br /&gt;
 13      EXCEPTION&lt;br /&gt;
 14           WHEN no_salary THEN&lt;br /&gt;
 15              raise_application_error (-20001,&amp;quot;You must have salary in order to insert the employee.&amp;quot;);&lt;br /&gt;
 16&lt;br /&gt;
 17           WHEN OTHERS THEN&lt;br /&gt;
 18              raise_application_error (-20002,&amp;quot;An error has occurred inserting an employee.&amp;quot;);&lt;br /&gt;
 19&lt;br /&gt;
 20      END;&lt;br /&gt;
 21      /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; exec add_new_employee(&amp;quot;99&amp;quot;,0);&lt;br /&gt;
BEGIN add_new_employee(&amp;quot;99&amp;quot;,0); END;&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-20001: You must have salary in order to insert the employee.&lt;br /&gt;
ORA-06512: at &amp;quot;sqle.ADD_NEW_EMPLOYEE&amp;quot;, line 15&lt;br /&gt;
ORA-06512: at line 1&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raises and manages a standard anonymous block PL/SQL program error.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON SIZE 1000000&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2&lt;br /&gt;
  3    &lt;br /&gt;
  4    my_error          EXCEPTION;&lt;br /&gt;
  5&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7&lt;br /&gt;
  8    &lt;br /&gt;
  9    RAISE my_error;&lt;br /&gt;
 10&lt;br /&gt;
 11  EXCEPTION&lt;br /&gt;
 12&lt;br /&gt;
 13    WHEN others THEN&lt;br /&gt;
 14      dbms_output.put_line(&amp;quot;RAISE my_error&amp;quot;||CHR(10)||&amp;quot;SQLCODE [&amp;quot;||SQLCODE||&amp;quot;]&amp;quot;||CHR(10)||&amp;quot;SQLERRM [&amp;quot;||SQLERRM||&amp;quot;]&amp;quot;);&lt;br /&gt;
 15&lt;br /&gt;
 16  END;&lt;br /&gt;
 17  /&lt;br /&gt;
RAISE my_error&lt;br /&gt;
SQLCODE [1]&lt;br /&gt;
SQLERRM [User-Defined Exception]&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raise your own exception==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set echo off&lt;br /&gt;
SQL&amp;gt; set verify off&lt;br /&gt;
SQL&amp;gt; set define &amp;quot;&amp;amp;&amp;quot;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; prompt &amp;quot;degrees F?:&amp;quot;&lt;br /&gt;
&amp;quot;degrees F?:&amp;quot;&lt;br /&gt;
SQL&amp;gt; accept temp default &amp;quot;100&amp;quot;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2    porridge_too_hot  exception;&lt;br /&gt;
  3    porridge_too_cold exception;&lt;br /&gt;
  4  begin&lt;br /&gt;
  5    case&lt;br /&gt;
  6      when &amp;quot;&amp;amp;temp&amp;quot; &amp;lt; 90.00 then raise porridge_too_cold;&lt;br /&gt;
  7      when &amp;quot;&amp;amp;temp&amp;quot; &amp;gt; 140.00 then raise porridge_too_hot;&lt;br /&gt;
  8      else null;&lt;br /&gt;
  9    end case;&lt;br /&gt;
 10&lt;br /&gt;
 11    dbms_output.put_line(&amp;quot;just right&amp;quot;);&lt;br /&gt;
 12&lt;br /&gt;
 13  exception&lt;br /&gt;
 14    when VALUE_ERROR then&lt;br /&gt;
 15      dbms_output.put_line(&amp;quot;Please enter a numeric temperature (like 100)&amp;quot;);&lt;br /&gt;
 16&lt;br /&gt;
 17    when porridge_too_hot then&lt;br /&gt;
 18      dbms_output.put_line(&amp;quot;way too hot...&amp;quot;);&lt;br /&gt;
 19&lt;br /&gt;
 20    when porridge_too_cold then&lt;br /&gt;
 21      dbms_output.put_line(&amp;quot;way too cold...&amp;quot;);&lt;br /&gt;
 22  end;&lt;br /&gt;
 23  /&lt;br /&gt;
just right&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raising an exception==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
SQL&amp;gt; CREATE TABLE session (&lt;br /&gt;
  2    department       CHAR(3),&lt;br /&gt;
  3    course           NUMBER(3),&lt;br /&gt;
  4    description      VARCHAR2(2000),&lt;br /&gt;
  5    max_lecturer     NUMBER(3),&lt;br /&gt;
  6    current_lecturer NUMBER(3),&lt;br /&gt;
  7    num_credits      NUMBER(1),&lt;br /&gt;
  8    room_id          NUMBER(5)&lt;br /&gt;
  9    );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;HIS&amp;quot;, 101, &amp;quot;History 101&amp;quot;, 30, 11, 4, 20000);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;HIS&amp;quot;, 301, &amp;quot;History 301&amp;quot;, 30, 0, 4, 20004);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;CS&amp;quot;, 101, &amp;quot;Computer Science 101&amp;quot;, 50, 0, 4, 20001);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;ECN&amp;quot;, 203, &amp;quot;Economics 203&amp;quot;, 15, 0, 3, 20002);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;CS&amp;quot;, 102, &amp;quot;Computer Science 102&amp;quot;, 35, 3, 4, 20003);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;MUS&amp;quot;, 410, &amp;quot;Music 410&amp;quot;, 5, 4, 3, 20005);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;ECN&amp;quot;, 101, &amp;quot;Economics 101&amp;quot;, 50, 0, 4, 20007);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;NUT&amp;quot;, 307, &amp;quot;Nutrition 307&amp;quot;, 20, 2, 4, 20008);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO session(department, course, description, max_lecturer, current_lecturer, num_credits, room_id)&lt;br /&gt;
  2              VALUES (&amp;quot;MUS&amp;quot;, 100, &amp;quot;Music 100&amp;quot;, 100, 0, 3, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    myException EXCEPTION;&lt;br /&gt;
  3    studentCount NUMBER(3);&lt;br /&gt;
  4    studentMax NUMBER(3);&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6    SELECT current_lecturer, max_lecturer&lt;br /&gt;
  7      INTO studentCount, studentMax&lt;br /&gt;
  8      FROM session&lt;br /&gt;
  9      WHERE department = &amp;quot;HIS&amp;quot; AND course = 101;&lt;br /&gt;
 10    IF studentCount &amp;gt; studentMax THEN&lt;br /&gt;
 11      RAISE myException;&lt;br /&gt;
 12    END IF;&lt;br /&gt;
 13  END;&lt;br /&gt;
 14  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table session;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raising NO_DATA_FOUND Exception==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    TYPE t_NumberTableType IS TABLE OF NUMBER&lt;br /&gt;
  3      INDEX BY BINARY_INTEGER;&lt;br /&gt;
  4    v_NumberTable t_NumberTableType;&lt;br /&gt;
  5    v_TempVar NUMBER;&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7    v_TempVar := v_NumberTable(1);&lt;br /&gt;
  8  END;&lt;br /&gt;
  9  /&lt;br /&gt;
DECLARE&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-01403: no data found&lt;br /&gt;
ORA-06512: at line 7&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting the message dynamically==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2     e EXCEPTION;&lt;br /&gt;
  3    PRAGMA EXCEPTION_INIT(e,-20001);&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    RAISE_APPLICATION_ERROR(-20001,&amp;quot;A less than original message.&amp;quot;);&lt;br /&gt;
  6  EXCEPTION&lt;br /&gt;
  7    WHEN e THEN&lt;br /&gt;
  8      dbms_output.put_line(SQLERRM);&lt;br /&gt;
  9  END;&lt;br /&gt;
 10  /&lt;br /&gt;
ORA-20001: A less than original message.&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==This procedure demonstrates the use of RAISE_APPLICATION_ERROR.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt; CREATE TABLE emp (&lt;br /&gt;
  2    id         NUMBER PRIMARY KEY,&lt;br /&gt;
  3    fname VARCHAR2(50),&lt;br /&gt;
  4    lname  VARCHAR2(50)&lt;br /&gt;
  5  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (id, fname, lname)VALUES (1, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (id, fname, lname)VALUES (2, &amp;quot;C&amp;quot;, &amp;quot;D&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (id, fname, lname)VALUES (3, &amp;quot;Enn&amp;quot;, &amp;quot;F&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (id, fname, lname)VALUES (4, &amp;quot;G&amp;quot;, &amp;quot;H&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (id, fname, lname)VALUES (5, &amp;quot;G&amp;quot;, &amp;quot;Z&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE book (&lt;br /&gt;
  2    isbn      CHAR(10) PRIMARY KEY,&lt;br /&gt;
  3    category  VARCHAR2(20),&lt;br /&gt;
  4    title     VARCHAR2(100),&lt;br /&gt;
  5    num_pages NUMBER,&lt;br /&gt;
  6    price     NUMBER,&lt;br /&gt;
  7    copyright NUMBER(4),&lt;br /&gt;
  8    emp1   NUMBER,&lt;br /&gt;
  9    emp2   NUMBER,&lt;br /&gt;
 10    emp3   NUMBER&lt;br /&gt;
 11  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2, emp3)&lt;br /&gt;
  2             VALUES (&amp;quot;1&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;Oracle&amp;quot;, 563, 39.99, 1999, 1, 2, 3);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2)&lt;br /&gt;
  2             VALUES (&amp;quot;2&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;MySQL&amp;quot;, 765, 44.99, 1999, 4, 5);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2, emp3)&lt;br /&gt;
  2             VALUES (&amp;quot;3&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;SQL Server&amp;quot;, 404, 39.99, 2001, 6, 7, 8);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2, emp3)&lt;br /&gt;
  2             VALUES (&amp;quot;4&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;SQL&amp;quot;, 535, 39.99, 2002, 4, 5, 9);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2)&lt;br /&gt;
  2             VALUES (&amp;quot;5&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;Java&amp;quot;, 487, 39.99, 2002, 10, 11);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2)&lt;br /&gt;
  2             VALUES (&amp;quot;6&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;JDBC&amp;quot;, 592, 39.99, 2002, 12, 13);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO book (isbn, category, title, num_pages, price, copyright, emp1, emp2, emp3)&lt;br /&gt;
  2             VALUES (&amp;quot;7&amp;quot;, &amp;quot;Database&amp;quot;, &amp;quot;XML&amp;quot;, 500, 39.99, 2002, 1, 2, 3);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE Verifyemp(p_emp1 IN book.emp1%TYPE,p_emp2 IN book.emp2%TYPE,p_emp3 IN book.emp3%TYPE) AS&lt;br /&gt;
  2&lt;br /&gt;
  3    v_empCount NUMBER;&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    IF p_emp1 IS NULL THEN&lt;br /&gt;
  6      RAISE_APPLICATION_ERROR(-20000, &amp;quot;emp1 cannot be null&amp;quot;);&lt;br /&gt;
  7    ELSE&lt;br /&gt;
  8      SELECT COUNT(*) INTO v_empCount FROM emp WHERE id = p_emp1;&lt;br /&gt;
  9      IF v_empCount = 0 THEN&lt;br /&gt;
 10        RAISE_APPLICATION_ERROR(-20001,&amp;quot;emp1 &amp;quot; || p_emp1 || &amp;quot; does not exist&amp;quot;);&lt;br /&gt;
 11      END IF;&lt;br /&gt;
 12    END IF;&lt;br /&gt;
 13&lt;br /&gt;
 14    IF p_emp1 = p_emp2 THEN&lt;br /&gt;
 15      RAISE_APPLICATION_ERROR (-20002,&amp;quot;emp1 &amp;quot; || p_emp1 || &amp;quot; and emp2 &amp;quot; || p_emp2 ||&amp;quot; are duplicates&amp;quot;);&lt;br /&gt;
 16    ELSIF p_emp1 = p_emp3 THEN&lt;br /&gt;
 17      RAISE_APPLICATION_ERROR (-20002,&amp;quot;emp1 &amp;quot; || p_emp1 || &amp;quot; and emp3 &amp;quot; || p_emp3 ||&amp;quot; are duplicates&amp;quot;);&lt;br /&gt;
 18    ELSIF p_emp2 = p_emp3 THEN&lt;br /&gt;
 19      RAISE_APPLICATION_ERROR (-20002,&amp;quot;emp2 &amp;quot; || p_emp2 || &amp;quot; and emp3 &amp;quot; || p_emp3 ||&amp;quot; are duplicates&amp;quot;);&lt;br /&gt;
 20    END IF;&lt;br /&gt;
 21  END Verifyemp;&lt;br /&gt;
 22  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table book;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>