<?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_Statements%2FRAISE</id>
		<title>Oracle PL/SQL Tutorial/PL SQL Statements/RAISE - История изменений</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_Statements%2FRAISE"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Statements/RAISE&amp;action=history"/>
		<updated>2026-05-24T19:04:42Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Statements/RAISE&amp;diff=3188&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_Statements/RAISE&amp;diff=3188&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_Statements/RAISE&amp;diff=3189&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_Statements/RAISE&amp;diff=3189&amp;oldid=prev"/>
				<updated>2010-05-26T10:05:36Z</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;== Check condition first, 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 EMP (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  2                    ENAME VARCHAR2(10),&lt;br /&gt;
  3                    JOB VARCHAR2(9),&lt;br /&gt;
  4                    MGR NUMBER(4),&lt;br /&gt;
  5                    HIREDATE DATE,&lt;br /&gt;
  6                    SAL NUMBER(7, 2),&lt;br /&gt;
  7                    COMM NUMBER(7, 2),&lt;br /&gt;
  8                    DEPTNO NUMBER(2));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TRIGGER secure_del_trigger&lt;br /&gt;
  2     BEFORE DELETE&lt;br /&gt;
  3     ON emp&lt;br /&gt;
  4     FOR EACH ROW&lt;br /&gt;
  5  DECLARE&lt;br /&gt;
  6     unauthorized_deletion EXCEPTION;&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8     IF 1 = 1&lt;br /&gt;
  9     THEN&lt;br /&gt;
 10        RAISE unauthorized_deletion;&lt;br /&gt;
 11     END IF;&lt;br /&gt;
 12  EXCEPTION&lt;br /&gt;
 13     WHEN unauthorized_deletion&lt;br /&gt;
 14     THEN&lt;br /&gt;
 15        raise_application_error (-20500, &amp;quot;This record cannot be deleted&amp;quot;);&lt;br /&gt;
 16  END;&lt;br /&gt;
 17  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Define local exceptioon variable.==&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; SET SERVEROUTPUT ON SIZE 1000000&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- Build an anonymous block that will trigger an error.&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    PRAGMA EXCEPTION_INIT(my_error,-20001);&lt;br /&gt;
  6&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8&lt;br /&gt;
  9    -- Raise the exception.&lt;br /&gt;
 10    RAISE my_error;&lt;br /&gt;
 11&lt;br /&gt;
 12  EXCEPTION&lt;br /&gt;
 13&lt;br /&gt;
 14    WHEN my_error THEN&lt;br /&gt;
 15      dbms_output.put_line(&amp;quot;RAISE my_error&amp;quot;||CHR(10)&lt;br /&gt;
 16                           ||&amp;quot;SQLCODE [&amp;quot;||SQLCODE||&amp;quot;]&amp;quot;||CHR(10)&lt;br /&gt;
 17                           ||&amp;quot;SQLERRM [&amp;quot;||SQLERRM&lt;br /&gt;
 18                           ||&amp;quot;User defined error.]&amp;quot;);&lt;br /&gt;
 19&lt;br /&gt;
 20  END;&lt;br /&gt;
 21  /&lt;br /&gt;
RAISE my_error&lt;br /&gt;
SQLCODE [-20001]&lt;br /&gt;
SQLERRM [ORA-20001: User defined error.]&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;
== Raise the 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; SET SERVEROUTPUT ON SIZE 1000000&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- Build an anonymous block that will trigger an error.&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2&lt;br /&gt;
  3    -- Define local exceptioon variable.&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)&lt;br /&gt;
 15                           ||&amp;quot;SQLCODE [&amp;quot;||SQLCODE||&amp;quot;]&amp;quot;||CHR(10)&lt;br /&gt;
 16                           ||&amp;quot;SQLERRM [&amp;quot;||SQLERRM||&amp;quot;]&amp;quot;);&lt;br /&gt;
 17&lt;br /&gt;
 18  END;&lt;br /&gt;
 19  /&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;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Re-raise the exception to indicate there is a problem==&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; CREATE OR REPLACE PROCEDURE execDDL (ddl_string IN VARCHAR2)&lt;br /&gt;
  2     AUTHID CURRENT_USER IS&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4     EXECUTE IMMEDIATE ddl_string;&lt;br /&gt;
  5  EXCEPTION&lt;br /&gt;
  6     WHEN OTHERS&lt;br /&gt;
  7     THEN&lt;br /&gt;
  8&lt;br /&gt;
  9        DBMS_OUTPUT.PUT_LINE (&amp;quot;Dynamic SQL Failure: &amp;quot; || SQLERRM);&lt;br /&gt;
 10        DBMS_OUTPUT.PUT_LINE (&amp;quot;   on statement: &amp;quot;&amp;quot; || ddl_string || &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
 11&lt;br /&gt;
 12        RAISE;&lt;br /&gt;
 13  END;&lt;br /&gt;
 14  /&lt;br /&gt;
Procedure created.&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>