<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FPL_SQL_Programming%2Fraise_application_error</id>
		<title>Oracle PL/SQL Tutorial/PL SQL Programming/raise application error - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FPL_SQL_Programming%2Fraise_application_error"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/raise_application_error&amp;action=history"/>
		<updated>2026-05-24T05:39:48Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/raise_application_error&amp;diff=4037&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/raise_application_error&amp;diff=4037&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://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/raise_application_error&amp;diff=4038&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/raise_application_error&amp;diff=4038&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;== A complete example using 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table company(&lt;br /&gt;
  2     product_id        number(4)    not null,&lt;br /&gt;
  3     company_id          NUMBER(8)    not null,&lt;br /&gt;
  4     company_short_name  varchar2(30) not null,&lt;br /&gt;
  5     company_long_name   varchar2(60)&lt;br /&gt;
  6  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into company values(1,1001,&amp;quot;A Inc.&amp;quot;,&amp;quot;Long Name A Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into company values(1,1002,&amp;quot;B Inc.&amp;quot;,&amp;quot;Long Name B Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into company values(1,1003,&amp;quot;C Inc.&amp;quot;,&amp;quot;Long Name C Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into company values(2,1004,&amp;quot;D Inc.&amp;quot;,&amp;quot;Long Name D Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into company values(2,1005,&amp;quot;E Inc.&amp;quot;,&amp;quot;Long Name E Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into company values(2,1006,&amp;quot;F Inc.&amp;quot;,&amp;quot;Long Name F Inc.&amp;quot;);&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;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE org_proc&lt;br /&gt;
  2                  (p_flag_in VARCHAR2,&lt;br /&gt;
  3                   p_product_id NUMBER,&lt;br /&gt;
  4                   p_company_id NUMBER,&lt;br /&gt;
  5                   p_company_short_name VARCHAR2,&lt;br /&gt;
  6                   p_company_long_name VARCHAR2)&lt;br /&gt;
  7  IS&lt;br /&gt;
  8    v_error_code NUMBER;&lt;br /&gt;
  9  BEGIN&lt;br /&gt;
 10    IF (p_flag_in =&amp;quot;I&amp;quot;)THEN&lt;br /&gt;
 11      BEGIN&lt;br /&gt;
 12        INSERT INTO company VALUES(p_product_id,p_company_id,p_company_short_name,p_company_long_name);&lt;br /&gt;
 13      EXCEPTION WHEN OTHERS THEN&lt;br /&gt;
 14        v_error_code :=SQLCODE;&lt;br /&gt;
 15        IF v_error_code =-1 THEN&lt;br /&gt;
 16          RAISE_APPLICATION_ERROR(-20000,&amp;quot;Organization &amp;quot;||TO_CHAR(p_company_id)||&amp;quot; already exists.&amp;quot;);&lt;br /&gt;
 17        ELSIF v_error_code =-2291 THEN&lt;br /&gt;
 18          RAISE_APPLICATION_ERROR(-20001,&amp;quot;Invalid Hierarchy Code &amp;quot;||TO_CHAR(p_product_id)||&amp;quot; specified.&amp;quot;);&lt;br /&gt;
 19        END IF;&lt;br /&gt;
 20      END;&lt;br /&gt;
 21    ELSIF (p_flag_in =&amp;quot;C&amp;quot;)THEN&lt;br /&gt;
 22      BEGIN&lt;br /&gt;
 23        UPDATE company&lt;br /&gt;
 24        set company_short_name =p_company_short_name,&lt;br /&gt;
 25        company_long_name =p_company_long_name&lt;br /&gt;
 26        WHERE product_id =p_product_id&lt;br /&gt;
 27        AND company_id =p_company_id;&lt;br /&gt;
 28        IF SQL%NOTFOUND THEN&lt;br /&gt;
 29          RAISE_APPLICATION_ERROR(-20002,&amp;quot;Organization &amp;quot;||TO_CHAR(p_company_id)||&amp;quot; does not exist.&amp;quot;);&lt;br /&gt;
 30        END IF;&lt;br /&gt;
 31      END;&lt;br /&gt;
 32    ELSIF (p_flag_in =&amp;quot;D&amp;quot;)THEN&lt;br /&gt;
 33      BEGIN&lt;br /&gt;
 34        DELETE company&lt;br /&gt;
 35        WHERE product_id =p_product_id&lt;br /&gt;
 36        AND company_id =p_company_id;&lt;br /&gt;
 37        IF SQL%NOTFOUND THEN&lt;br /&gt;
 38          RAISE_APPLICATION_ERROR(-20003,&amp;quot;Organization &amp;quot;||TO_CHAR(p_company_id)||&amp;quot; does not exist.&amp;quot;);&lt;br /&gt;
 39        END IF;&lt;br /&gt;
 40      EXCEPTION WHEN OTHERS THEN&lt;br /&gt;
 41        v_error_code :=SQLCODE;&lt;br /&gt;
 42        IF v_error_code =-2292 THEN&lt;br /&gt;
 43          RAISE_APPLICATION_ERROR(-20004,&amp;quot;Organization &amp;quot;||TO_CHAR(p_company_id)||&amp;quot; site details defined for it.&amp;quot;);&lt;br /&gt;
 44        END IF;&lt;br /&gt;
 45      END;&lt;br /&gt;
 46    END IF;&lt;br /&gt;
 47  END;&lt;br /&gt;
 48  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v_product_id NUMBER := 6;&lt;br /&gt;
  3    v_company_id NUMBER := 1010;&lt;br /&gt;
  4    v_company_short_name VARCHAR2(30):= &amp;quot;Office Inc.&amp;quot;;&lt;br /&gt;
  5    v_company_long_name VARCHAR2(60):= &amp;quot;Office Inc.&amp;quot;;&lt;br /&gt;
  6    excep1 EXCEPTION;&lt;br /&gt;
  7    PRAGMA EXCEPTION_INIT(excep1,-20000);&lt;br /&gt;
  8    excep2 EXCEPTION;&lt;br /&gt;
  9    PRAGMA EXCEPTION_INIT(excep2,-20001);&lt;br /&gt;
 10  BEGIN&lt;br /&gt;
 11    org_proc(&amp;quot;I&amp;quot;,v_product_id,v_company_id,v_company_short_name,v_company_long_name);&lt;br /&gt;
 12  EXCEPTION&lt;br /&gt;
 13    WHEN excep1 or excep2 THEN&lt;br /&gt;
 14      DBMS_OUTPUT.PUT_LINE(SQLERRM);&lt;br /&gt;
 15    WHEN OTHERS THEN&lt;br /&gt;
 16      DBMS_OUTPUT.PUT_LINE(TO_CHAR(SQLCODE)||SQLERRM);&lt;br /&gt;
 17  END;&lt;br /&gt;
 18  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table company;&lt;br /&gt;
Table dropped.&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;
== Check the result of count aggregation function and then raise 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; create table ord(&lt;br /&gt;
  2           order_no               integer          primary key&lt;br /&gt;
  3          ,cust_no                integer&lt;br /&gt;
  4          ,order_date             date not null&lt;br /&gt;
  5          ,total_order_price      number(7,2)&lt;br /&gt;
  6          ,deliver_date           date&lt;br /&gt;
  7          ,deliver_time           varchar2(7)&lt;br /&gt;
  8          ,payment_method         varchar2(2)&lt;br /&gt;
  9          ,emp_no                 number(3,0)&lt;br /&gt;
 10          ,deliver_name           varchar2(35)&lt;br /&gt;
 11          ,gift_message           varchar2(100)&lt;br /&gt;
 12  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no,cust_no,order_date,total_order_price,deliver_date,deliver_time,payment_method,emp_no,deliver_name,gift_message)&lt;br /&gt;
  2           values(1,1,&amp;quot;14-Feb-2002&amp;quot;, 23.00, &amp;quot;14-Feb-2002&amp;quot;, &amp;quot;12 noon&amp;quot;, &amp;quot;CA&amp;quot;,1, null, &amp;quot;Gift for wife&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time ,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2           values(2,1,&amp;quot;14-Feb-2003&amp;quot;, 510.98, &amp;quot;14-feb-2003&amp;quot;, &amp;quot;5 pm&amp;quot;, &amp;quot;NY&amp;quot;,7, &amp;quot;Rose Ted&amp;quot;, &amp;quot;Happy Valentines Day to Mother&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2           values(3, 2,&amp;quot;14-Feb-2004&amp;quot;, 315.99, &amp;quot;14-feb-2004&amp;quot;, &amp;quot;3 pm&amp;quot;, &amp;quot;VS&amp;quot;,2, &amp;quot;Ani Forest&amp;quot;, &amp;quot;Happy Valentines Day to Father&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2           values(4, 2,&amp;quot;14-Feb-1999&amp;quot;, 191.95, &amp;quot;14-feb-1999&amp;quot;, &amp;quot;2 pm&amp;quot;, &amp;quot;NJ&amp;quot;,2, &amp;quot;O. John&amp;quot;, &amp;quot;Happy Valentines Day&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message    )&lt;br /&gt;
  2           values(5, 6,&amp;quot;4-mar-2002&amp;quot;, 101.95, &amp;quot;5-mar-2002&amp;quot;, &amp;quot;2:30 pm&amp;quot;, &amp;quot;MO&amp;quot;    , 2, &amp;quot;Cora&amp;quot;, &amp;quot;Happy Birthday from John&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2           values(6, 9,&amp;quot;7-apr-2003&amp;quot;, 221.95, &amp;quot;7-apr-2003&amp;quot;, &amp;quot;3 pm&amp;quot;, &amp;quot;MA&amp;quot;, 2, &amp;quot;Sake Keith&amp;quot;, &amp;quot;Happy Birthday from Joe&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2           values(7, 9,&amp;quot;20-jun-2004&amp;quot;, 315.95, &amp;quot;21-jun-2004&amp;quot;, &amp;quot;12 noon&amp;quot;, &amp;quot;BC&amp;quot;, 2, &amp;quot;Jessica Li&amp;quot;, &amp;quot;Happy Birthday from Jessica&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2           values (8, 12, &amp;quot;31-dec-1999&amp;quot;, 135.95, &amp;quot;1-jan-2000&amp;quot;, &amp;quot;12 noon&amp;quot;, &amp;quot;DI&amp;quot;,   3, &amp;quot;Larry&amp;quot;, &amp;quot;Happy New Year from Lawrence&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2           values (9, 12, &amp;quot;26-dec-2003&amp;quot;, 715.95, &amp;quot;2-jan-2004&amp;quot;, &amp;quot;12 noon&amp;quot;, &amp;quot;SK&amp;quot;,7, &amp;quot;Did&amp;quot;, &amp;quot;Happy Birthday from Nancy&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2           values(10, 4, sysdate-1, 119.95, sysdate+2, &amp;quot;6:30 pm&amp;quot;, &amp;quot;VG&amp;quot;,2, &amp;quot;P. Jing&amp;quot;, &amp;quot;Happy Valentines Day to Jason&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2           values(11, 2, sysdate, 310.00, sysdate+2, &amp;quot;3:30 pm&amp;quot;, &amp;quot;DC&amp;quot;,2, &amp;quot;C. Late&amp;quot;, &amp;quot;Happy Birthday Day to Jack&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message)&lt;br /&gt;
  2           values(12, 7, sysdate-3, 121.95, sysdate-2, &amp;quot;1:30 pm&amp;quot;, &amp;quot;AC&amp;quot;,2, &amp;quot;W. Last&amp;quot;, &amp;quot;Happy Birthday Day to You&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,cust_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message)&lt;br /&gt;
  2           values(13, 7, sysdate, 211.95, sysdate-4, &amp;quot;4:30 pm&amp;quot;, &amp;quot;CA&amp;quot;,2, &amp;quot;J. Bond&amp;quot;, &amp;quot;Thanks for hard working&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace procedure delete_cust&lt;br /&gt;
  2  (p_Cust_no in number)&lt;br /&gt;
  3  as&lt;br /&gt;
  4    l_count number;&lt;br /&gt;
  5&lt;br /&gt;
  6  begin&lt;br /&gt;
  7&lt;br /&gt;
  8     select count(*) into l_count&lt;br /&gt;
  9        from ord&lt;br /&gt;
 10        where cust_no = p_cust_no;&lt;br /&gt;
 11     if l_count != 0 then&lt;br /&gt;
 12       raise_application_error(-20000, &amp;quot;cannot delete active cust&amp;quot;);&lt;br /&gt;
 13     end if;&lt;br /&gt;
 14  end;&lt;br /&gt;
 15  /&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;
SQL&amp;gt; EXEC delete_cust(13);&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table ord;&lt;br /&gt;
Table dropped.&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;
== Raise applocation 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;
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,&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; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from Employee&lt;br /&gt;
  2  /&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace trigger emp_biu&lt;br /&gt;
  2  BEFORE INSERT OR UPDATE&lt;br /&gt;
  3  of salary&lt;br /&gt;
  4  on employee&lt;br /&gt;
  5  for each row&lt;br /&gt;
  6  declare&lt;br /&gt;
  7      v_error VARCHAR2(2000);&lt;br /&gt;
  8  begin&lt;br /&gt;
  9      if :new.salary &amp;gt; 10000&lt;br /&gt;
 10      then&lt;br /&gt;
 11          v_error:=:old.first_name||&amp;quot; cannot have that much!&amp;quot;;&lt;br /&gt;
 12          raise_application_error(-20999,v_error);&lt;br /&gt;
 13      end if;&lt;br /&gt;
 14&lt;br /&gt;
 15&lt;br /&gt;
 16  end;&lt;br /&gt;
 17  /&lt;br /&gt;
Trigger 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;), 11232.78,&amp;quot;Vancouver&amp;quot;, &amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,               Salary, City,        Description)&lt;br /&gt;
            *&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-20999:  cannot have that much!&lt;br /&gt;
ORA-06512: at &amp;quot;sqle.EMP_BIU&amp;quot;, line 7&lt;br /&gt;
ORA-04088: error during execution of trigger &amp;quot;sqle.EMP_BIU&amp;quot;&lt;br /&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;
== Use RAISE_APPLICATION_ERROR to re throw exceptions==&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 table employee&lt;br /&gt;
  2          (&lt;br /&gt;
  3           empl_no                integer         primary key&lt;br /&gt;
  4          ,lastname               varchar2(20)    not null&lt;br /&gt;
  5          ,firstname              varchar2(15)    not null&lt;br /&gt;
  6          ,midinit                varchar2(1)&lt;br /&gt;
  7          ,street                 varchar2(30)&lt;br /&gt;
  8          ,city                   varchar2(20)&lt;br /&gt;
  9          ,state                  varchar2(2)&lt;br /&gt;
 10          ,zip                    varchar2(5)&lt;br /&gt;
 11          ,zip_4                  varchar2(4)&lt;br /&gt;
 12          ,area_code              varchar2(3)&lt;br /&gt;
 13          ,phone                  varchar2(8)&lt;br /&gt;
 14          ,company_name           varchar2(50));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(1,&amp;quot;Jones&amp;quot;,&amp;quot;Joe&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;10 Ave&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;11111&amp;quot;,&amp;quot;1111&amp;quot;,&amp;quot;111&amp;quot;, &amp;quot;111-1111&amp;quot;,&amp;quot;A Company&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(2,&amp;quot;Smith&amp;quot;,&amp;quot;Sue&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;20 Ave&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;22222&amp;quot;,&amp;quot;2222&amp;quot;,&amp;quot;222&amp;quot;, &amp;quot;222-111&amp;quot;,&amp;quot;B Company&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(3,&amp;quot;Anderson&amp;quot;,&amp;quot;Peggy&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;500 St&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;33333&amp;quot;,&amp;quot;3333&amp;quot;,&amp;quot;333&amp;quot;, &amp;quot;333-3333&amp;quot;,&amp;quot;C Company&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(4,&amp;quot;Andy&amp;quot;,&amp;quot;Jill&amp;quot;, null,&amp;quot;930 St&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;44444&amp;quot;,&amp;quot;4444&amp;quot;,&amp;quot;212&amp;quot;, &amp;quot;634-7733&amp;quot;,&amp;quot;D Company&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(5,&amp;quot;OK&amp;quot;,&amp;quot;Carl&amp;quot;,&amp;quot;L&amp;quot;,&amp;quot;19 Drive&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;55555&amp;quot;,&amp;quot;3234&amp;quot;,&amp;quot;212&amp;quot;, &amp;quot;243-4243&amp;quot;,&amp;quot;E Company&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(6,&amp;quot;Peter&amp;quot;,&amp;quot;Jee&amp;quot;,&amp;quot;Q&amp;quot;,&amp;quot;38 Ave&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;66666&amp;quot;,&amp;quot;4598&amp;quot;,&amp;quot;212&amp;quot;, &amp;quot;454-5443&amp;quot;,&amp;quot;F Inc&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(7,&amp;quot;Baker&amp;quot;,&amp;quot;Paul&amp;quot;,&amp;quot;V&amp;quot;,&amp;quot;738 St.&amp;quot;,&amp;quot;Queens&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;77777&amp;quot;,&amp;quot;3842&amp;quot;,&amp;quot;718&amp;quot;, &amp;quot;664-4333&amp;quot;,&amp;quot;G Inc&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(8,&amp;quot;Young&amp;quot;,&amp;quot;Steve&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;388 Ave&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;88888&amp;quot;,&amp;quot;3468&amp;quot;,&amp;quot;212&amp;quot;, &amp;quot;456-4566&amp;quot;,&amp;quot;H Associates Inc&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(9,&amp;quot;Mona&amp;quot;,&amp;quot;Joe&amp;quot;,&amp;quot;T&amp;quot;,&amp;quot;9300 Ave&amp;quot;,&amp;quot;Kansas City&amp;quot;,&amp;quot;MO&amp;quot;,&amp;quot;99999&amp;quot;,&amp;quot;3658&amp;quot;,&amp;quot;415&amp;quot;, &amp;quot;456-4563&amp;quot;,&amp;quot;J Inc&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(10,&amp;quot;Hackett&amp;quot;,&amp;quot;Karen&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;Kings Rd. Apt 833&amp;quot;,&amp;quot;Bellmore&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;61202&amp;quot;,&amp;quot;3898&amp;quot;,&amp;quot;516&amp;quot;, &amp;quot;767-5677&amp;quot;,&amp;quot;AA Inc&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(11,&amp;quot;Bob&amp;quot;,&amp;quot;Jack&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;12 Giant Rd.&amp;quot;,&amp;quot;Newark&amp;quot;,&amp;quot;NJ&amp;quot;,&amp;quot;27377&amp;quot;,&amp;quot;3298&amp;quot;,&amp;quot;908&amp;quot;, &amp;quot;123-7367&amp;quot;,&amp;quot;Z Associates&amp;quot;);&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 table employee_temp as select * from employee where 0=1;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; alter table employee_temp add constraint ct_pk primary key (empl_no);&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2      for x in (select * from employee order by empl_no) loop&lt;br /&gt;
  3         begin&lt;br /&gt;
  4           insert into employee_temp values x;&lt;br /&gt;
  5         exception&lt;br /&gt;
  6           when others then&lt;br /&gt;
  7             raise_application_error(-20000,&lt;br /&gt;
  8              &amp;quot;Fatal error, call support&amp;quot;);&lt;br /&gt;
  9         end;&lt;br /&gt;
 10      end loop;&lt;br /&gt;
 11  end;&lt;br /&gt;
 12  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee_temp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee;&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;
== Using 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE Register is&lt;br /&gt;
  2  BEGIN&lt;br /&gt;
  3    RAISE_APPLICATION_ERROR(-20000, &amp;quot;Can&amp;quot;&amp;quot;t add more Employee&amp;quot;);&lt;br /&gt;
  4&lt;br /&gt;
  5  EXCEPTION&lt;br /&gt;
  6    WHEN NO_DATA_FOUND THEN&lt;br /&gt;
  7      RAISE_APPLICATION_ERROR(-20001, &amp;quot; doesn&amp;quot;&amp;quot;t exist!&amp;quot;);&lt;br /&gt;
  8  END Register;&lt;br /&gt;
  9  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; call Register();&lt;br /&gt;
call Register()&lt;br /&gt;
     *&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-20000: Can&amp;quot;t add more Employee&lt;br /&gt;
ORA-06512: at &amp;quot;sqle.REGISTER&amp;quot;, line 3&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>