<?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_Tutorial%2FPL_SQL_Programming%2FException</id>
		<title>Oracle PL/SQL Tutorial/PL SQL Programming/Exception - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FPL_SQL_Programming%2FException"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/Exception&amp;action=history"/>
		<updated>2026-05-26T12:32:38Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/Exception&amp;diff=4039&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_Tutorial/PL_SQL_Programming/Exception&amp;diff=4039&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</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_Tutorial/PL_SQL_Programming/Exception&amp;diff=4040&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/Exception&amp;diff=4040&amp;oldid=prev"/>
				<updated>2010-05-26T10:08:27Z</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;== Because OTHERS handles all exceptions, you must list it after any specific exceptions in your EXCEPTION block.==&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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2     DBMS_OUTPUT.PUT_LINE(1 / 0);&lt;br /&gt;
  3  EXCEPTION&lt;br /&gt;
  4     WHEN OTHERS THEN&lt;br /&gt;
  5        DBMS_OUTPUT.PUT_LINE(&amp;quot;An exception occurred&amp;quot;);&lt;br /&gt;
  6     WHEN ZERO_DIVIDE THEN&lt;br /&gt;
  7        DBMS_OUTPUT.PUT_LINE(&amp;quot;Division by zero&amp;quot;);&lt;br /&gt;
  8  END;&lt;br /&gt;
  9  /&lt;br /&gt;
   WHEN OTHERS THEN&lt;br /&gt;
   *&lt;br /&gt;
ERROR at line 4:&lt;br /&gt;
ORA-06550: line 4, column 4:&lt;br /&gt;
PLS-00370: OTHERS handler must be last among the exception handlers of a block&lt;br /&gt;
ORA-06550: line 0, column 0:&lt;br /&gt;
PL/SQL: Compilation unit analysis terminated&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Catch &amp;quot;divide by zero&amp;quot; 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;
SQL&amp;gt; set serveroutput on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2          Num_a NUMBER := 6;&lt;br /&gt;
  3          Num_b NUMBER;&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5          Num_b := 0;&lt;br /&gt;
  6          Num_a := Num_a / Num_b;&lt;br /&gt;
  7          Num_b := 7;&lt;br /&gt;
  8          dbms_output.put_line(&amp;quot; Value of Num_b &amp;quot; || Num_b);&lt;br /&gt;
  9  EXCEPTION&lt;br /&gt;
 10          WHEN ZERO_DIVIDE&lt;br /&gt;
 11  THEN&lt;br /&gt;
 12                dbms_output.put_line(&amp;quot;Trying to divide by zero&amp;quot;);&lt;br /&gt;
 13                dbms_output.put_line(&amp;quot; Value of Num_a &amp;quot; || Num_a);&lt;br /&gt;
 14                dbms_output.put_line(&amp;quot; Value of Num_b &amp;quot; || Num_b);&lt;br /&gt;
 15  END;&lt;br /&gt;
 16  /&lt;br /&gt;
Trying to divide by zero&lt;br /&gt;
Value of Num_a 6&lt;br /&gt;
Value of Num_b 0&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Data not 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;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 primary key,&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;
&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;&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON ESCAPE OFF&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2     v_employee EMPLOYEE.FIRST_NAME%TYPE;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4&lt;br /&gt;
  5     -- the first nested block&lt;br /&gt;
  6     BEGIN&lt;br /&gt;
  7        SELECT first_name&lt;br /&gt;
  8        INTO v_employee&lt;br /&gt;
  9        FROM EMPLOYEE&lt;br /&gt;
 10        WHERE UPPER(last_name) = &amp;quot;CAT&amp;quot;;&lt;br /&gt;
 11     EXCEPTION&lt;br /&gt;
 12        WHEN NO_DATA_FOUND&lt;br /&gt;
 13        THEN&lt;br /&gt;
 14           DBMS_OUTPUT.PUT_LINE(&amp;quot;EXCEPTION HANDLER for nested block 1&amp;quot;);&lt;br /&gt;
 15           DBMS_OUTPUT.PUT_LINE(&amp;quot;     &amp;quot;);&lt;br /&gt;
 16           NULL;&lt;br /&gt;
 17     END;&lt;br /&gt;
 18&lt;br /&gt;
 19     -- the second nested block&lt;br /&gt;
 20     BEGIN&lt;br /&gt;
 21        SELECT first_name&lt;br /&gt;
 22        INTO v_employee&lt;br /&gt;
 23        FROM EMPLOYEE&lt;br /&gt;
 24        WHERE UPPER(last_name) = &amp;quot;HARDMAN&amp;quot;;&lt;br /&gt;
 25&lt;br /&gt;
 26     EXCEPTION&lt;br /&gt;
 27        WHEN TOO_MANY_ROWS&lt;br /&gt;
 28        THEN&lt;br /&gt;
 29           DBMS_OUTPUT.PUT_LINE(&amp;quot;     &amp;quot;);&lt;br /&gt;
 30           DBMS_OUTPUT.PUT_LINE(&amp;quot;EXCEPTION HANDLER for nested block 2&amp;quot;);&lt;br /&gt;
 31           DBMS_OUTPUT.PUT_LINE(&amp;quot;If this is printing, then the both nested&amp;quot;);&lt;br /&gt;
 32           DBMS_OUTPUT.PUT_LINE(&amp;quot;blocks&amp;quot;&amp;quot; exception handler worked!&amp;quot;);&lt;br /&gt;
 33     END;&lt;br /&gt;
 34  END;&lt;br /&gt;
 35  /&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 21&lt;br /&gt;
&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;
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.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Declare variables in exception handler==&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;
SQL&amp;gt; set serveroutput on&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2       Num_a NUMBER := 6;&lt;br /&gt;
  3       Num_b NUMBER;&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5       Num_b := 0;&lt;br /&gt;
  6       Num_a := Num_a / Num_b;&lt;br /&gt;
  7       Num_b := 7;&lt;br /&gt;
  8       dbms_output.put_line(&amp;quot; Value of Num_b &amp;quot; || Num_b);&lt;br /&gt;
  9  EXCEPTION&lt;br /&gt;
 10       WHEN ZERO_DIVIDE THEN&lt;br /&gt;
 11            DECLARE&lt;br /&gt;
 12                 err_num NUMBER        := SQLCODE;&lt;br /&gt;
 13                 err_msg VARCHAR2(512) := SQLERRM;&lt;br /&gt;
 14            BEGIN&lt;br /&gt;
 15                 dbms_output.put_line(&amp;quot;ORA Error Number &amp;quot;  || err_num );&lt;br /&gt;
 16                 dbms_output.put_line(&amp;quot;ORA Error message &amp;quot; || err_msg);&lt;br /&gt;
 17                 dbms_output.put_line(&amp;quot; Value of Num_a is &amp;quot;   || Num_a);&lt;br /&gt;
 18                 dbms_output.put_line(&amp;quot; Value of Num_b is &amp;quot;   || Num_b);&lt;br /&gt;
 19            END;&lt;br /&gt;
 20  END;&lt;br /&gt;
 21  /&lt;br /&gt;
ORA Error Number -1476&lt;br /&gt;
ORA Error message ORA-01476: divisor is equal to zero&lt;br /&gt;
Value of Num_a is 6&lt;br /&gt;
Value of Num_b is 0&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== DUP_VAL_ON_INDEX Exception==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The DUP_VAL_ON_INDEX exception is raised when an attempt is made to store duplicate values in a column that is constrained by a unique index.&amp;lt;/p&amp;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;
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 primary key,&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;&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2    INSERT INTO employee (id)VALUES(1);&lt;br /&gt;
  3  EXCEPTION&lt;br /&gt;
  4    WHEN DUP_VAL_ON_INDEX THEN&lt;br /&gt;
  5      DBMS_OUTPUT.PUT_LINE(&amp;quot;Duplicate value on an index&amp;quot;);&lt;br /&gt;
  6  END;&lt;br /&gt;
  7  /&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;
SQL&amp;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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Exception Handling==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The Syntax for Exceptions&amp;lt;/p&amp;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;
EXCEPTION&lt;br /&gt;
   WHEN OTHERS THEN&lt;br /&gt;
   &amp;lt;statements&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;p&amp;gt;statements is one or more statements that will be processed when the exception occurs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You could always code a NULL statement if no action is to be taken.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exceptions==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In PL/SQL, the user can catch certain runtime errors.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Exceptions can be internally defined by Oracle or the user.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Exceptions are used to handle errors that occur in your PL/SQL code.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A PL/SQL block contains an EXCEPTION block to handle exception.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There are three types of exceptions:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;Predefined Oracle errors&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Undefined Oracle errors&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;User-defined errors&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The different parts of the exception.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;Declare the exception.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Raise an exception.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Handle the exception.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;An exception has four attributes:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;Name provides a short description of the problem.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Type identifies the area of the error.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Exception Code gives a numeric representation of the exception.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Error message provides additional information about the exception.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The predefined divide-by-zero exception has the following values for the attributes:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;Name = ZERO_DIVIDE&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Type = ORA (from the Oracle engine)&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Exception Code =  C01476&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Error message = divisor is equal to zero&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The following is the typical syntax of an exception-handling PL/SQL block.&amp;lt;/p&amp;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;
exception&lt;br /&gt;
  when exception_1 THEN&lt;br /&gt;
  statements&lt;br /&gt;
  when exception_2 THEN&lt;br /&gt;
  statements&lt;br /&gt;
  ...&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;p&amp;gt;exception_1 and exception_2 are the names of the predefined exceptions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;statements is the PL/SQL code that will be executed if the exception name is satisfied.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== INVALID_NUMBER Exception==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The INVALID_NUMBER exception is raised when an attempt is made to convert an invalid character string into a number.&amp;lt;/p&amp;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;
SQL&amp;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),&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; BEGIN&lt;br /&gt;
  2    INSERT INTO employee(salary) VALUES(&amp;quot;123X&amp;quot;);&lt;br /&gt;
  3  EXCEPTION&lt;br /&gt;
  4    WHEN INVALID_NUMBER THEN&lt;br /&gt;
  5      DBMS_OUTPUT.PUT_LINE(&amp;quot;Conversion of string to number failed&amp;quot;);&lt;br /&gt;
  6  END;&lt;br /&gt;
  7  /&lt;br /&gt;
Conversion of string to number failed&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;
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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== OTHERS Exception==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You can use the OTHERS exception to handle all exceptions.&amp;lt;/p&amp;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;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2    DBMS_OUTPUT.PUT_LINE(1 / 0);&lt;br /&gt;
  3  EXCEPTION&lt;br /&gt;
  4    WHEN OTHERS THEN&lt;br /&gt;
  5      DBMS_OUTPUT.PUT_LINE(&amp;quot;An exception occurred&amp;quot;);&lt;br /&gt;
  6  END;&lt;br /&gt;
  7  /&lt;br /&gt;
An exception occurred&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== The NULL Statement==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The NULL statement is simply a statement that does nothing.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its format is simply&amp;lt;/p&amp;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;
NULL;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Types of more commonly used Exceptions==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The following are the more commonly used predefined exceptions:&amp;lt;/p&amp;gt;&lt;br /&gt;
no_data_found&lt;br /&gt;
Singleton SELECT statement returned no data.&lt;br /&gt;
too_many_rows&lt;br /&gt;
Singleton SELECT statement returned more than one row of data.&lt;br /&gt;
invalid_cursor&lt;br /&gt;
Illegal cursor operation occurred.&lt;br /&gt;
value_error&lt;br /&gt;
Arithmetic, conversion, or truncation error occurred.&lt;br /&gt;
invalid_number&lt;br /&gt;
Conversion of a number to a character string failed.&lt;br /&gt;
zero_divide&lt;br /&gt;
Attempted to divide by zero.&lt;br /&gt;
dup_val_on_index&lt;br /&gt;
Attempted to insert a duplicate value into a column that has a unique index.&lt;br /&gt;
cursor_already_open&lt;br /&gt;
Attempted to open a cursor that was previously opened.&lt;br /&gt;
not_logged_on&lt;br /&gt;
A database call was made without being logged into Oracle.&lt;br /&gt;
transaction_backed_out&lt;br /&gt;
Usually raised when a remote portion of a transaction is rolled back.&lt;br /&gt;
login_denied&lt;br /&gt;
Login to Oracle failed.&lt;br /&gt;
program_error&lt;br /&gt;
If PL/SQL encounters an internal problem.&lt;br /&gt;
storage_error&lt;br /&gt;
If PL/SQL runs out of memory or if memory is corrupted.&lt;br /&gt;
timeout_on_resource&lt;br /&gt;
Timeout occurred while Oracle was waiting for a resource.&lt;br /&gt;
others&lt;br /&gt;
For all of the rest.&lt;br /&gt;
&lt;br /&gt;
== Understanding Different Exception Types==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Identifying Exception Types&amp;lt;/p&amp;gt;&lt;br /&gt;
Error Code Prefix&lt;br /&gt;
Indicates This Exception Type of Error&lt;br /&gt;
ORA&lt;br /&gt;
Core RDBMS errors&lt;br /&gt;
PLS&lt;br /&gt;
PL/SQL errors&lt;br /&gt;
FRM&lt;br /&gt;
Oracle Forms errors&lt;br /&gt;
REP&lt;br /&gt;
Oracle Reports errors&lt;br /&gt;
&amp;lt;p&amp;gt;Oracle function SQLCODE returns the type and code of the most recently raised exception.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Exception names are usually associated with exceptions that you create yourself.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The exception message is a text string that describes the exception.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The function SQLERRM returns the text of the error message for the most recently raised exception.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== When the exception occurs, program control passes to the EXCEPTION block where the WHEN clause is examined for a matching exception.==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If no matching exception is found, the exception is propagated to the enclosing block.&amp;lt;/p&amp;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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2    DBMS_OUTPUT.PUT_LINE(1 / 0);&lt;br /&gt;
  3  END;&lt;br /&gt;
  4  /&lt;br /&gt;
BEGIN&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-01476: divisor is equal to zero&lt;br /&gt;
ORA-06512: at line 2&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== ZERO_DIVIDE Exception==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The ZERO_DIVIDE exception is raised when an attempt is made to divide a number by zero.&amp;lt;/p&amp;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;
BEGIN&lt;br /&gt;
  2    DBMS_OUTPUT.PUT_LINE(1 / 0);&lt;br /&gt;
  3  EXCEPTION&lt;br /&gt;
  4    WHEN ZERO_DIVIDE THEN&lt;br /&gt;
  5      DBMS_OUTPUT.PUT_LINE(&amp;quot;Division by zero&amp;quot;);&lt;br /&gt;
  6  END;&lt;br /&gt;
  7  /&lt;br /&gt;
Division by zero&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>