<?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%2FEXIT</id>
		<title>Oracle PL/SQL/PL SQL/EXIT - История изменений</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%2FEXIT"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/PL_SQL/EXIT&amp;action=history"/>
		<updated>2026-05-25T21:21:48Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/PL_SQL/EXIT&amp;diff=1988&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/EXIT&amp;diff=1988&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/EXIT&amp;diff=1989&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/EXIT&amp;diff=1989&amp;oldid=prev"/>
				<updated>2010-05-26T10:00:19Z</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;==Exit loop since last index value is read.==&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    current VARCHAR2(9 CHAR);&lt;br /&gt;
  3    element INTEGER;&lt;br /&gt;
  4&lt;br /&gt;
  5    TYPE months_varray IS VARRAY(12) OF STRING(9 CHAR);&lt;br /&gt;
  6    TYPE calendar_table IS TABLE OF VARCHAR2(9 CHAR) INDEX BY VARCHAR2(9 CHAR);&lt;br /&gt;
  7&lt;br /&gt;
  8    month MONTHS_VARRAY := months_varray(&amp;quot;January&amp;quot;,&amp;quot;February&amp;quot;,&amp;quot;March&amp;quot;,&amp;quot;April&amp;quot;,&amp;quot;May&amp;quot;,&amp;quot;June&amp;quot;,&amp;quot;July&amp;quot;,&amp;quot;August&amp;quot;,&amp;quot;September&amp;quot;,&amp;quot;October&amp;quot;,&amp;quot;November&amp;quot;,&amp;quot;December&amp;quot;);&lt;br /&gt;
  9&lt;br /&gt;
 10    calendar CALENDAR_TABLE;&lt;br /&gt;
 11  BEGIN&lt;br /&gt;
 12    IF calendar.COUNT = 0 THEN&lt;br /&gt;
 13      FOR i IN month.FIRST..month.LAST LOOP&lt;br /&gt;
 14        calendar(month(i)) := TO_CHAR(i);&lt;br /&gt;
 15        DBMS_OUTPUT.PUT_LINE(&amp;quot;Index [&amp;quot;||month(i)||&amp;quot;] is [&amp;quot;||i||&amp;quot;]&amp;quot;);&lt;br /&gt;
 16      END LOOP;&lt;br /&gt;
 17&lt;br /&gt;
 18      FOR i IN 1..calendar.COUNT LOOP&lt;br /&gt;
 19        IF i = 1 THEN&lt;br /&gt;
 20          current := calendar.FIRST;&lt;br /&gt;
 21          element := calendar(current);&lt;br /&gt;
 22        ELSE&lt;br /&gt;
 23          IF calendar.NEXT(current) IS NOT NULL THEN&lt;br /&gt;
 24            current := calendar.NEXT(current);&lt;br /&gt;
 25            element := calendar(current);&lt;br /&gt;
 26          ELSE&lt;br /&gt;
 27            EXIT;&lt;br /&gt;
 28          END IF;&lt;br /&gt;
 29        END IF;&lt;br /&gt;
 30&lt;br /&gt;
 31        DBMS_OUTPUT.PUT_LINE(&amp;quot;Index [&amp;quot;||current||&amp;quot;] is [&amp;quot;||element||&amp;quot;]&amp;quot;);&lt;br /&gt;
 32      END LOOP;&lt;br /&gt;
 33    END IF;&lt;br /&gt;
 34  END;&lt;br /&gt;
 35  /&lt;br /&gt;
Index [January] is [1]&lt;br /&gt;
Index [February] is [2]&lt;br /&gt;
Index [March] is [3]&lt;br /&gt;
Index [April] is [4]&lt;br /&gt;
Index [May] is [5]&lt;br /&gt;
Index [June] is [6]&lt;br /&gt;
Index [July] is [7]&lt;br /&gt;
Index [August] is [8]&lt;br /&gt;
Index [September] is [9]&lt;br /&gt;
Index [October] is [10]&lt;br /&gt;
Index [November] is [11]&lt;br /&gt;
Index [December] is [12]&lt;br /&gt;
Index [April] is [4]&lt;br /&gt;
Index [August] is [8]&lt;br /&gt;
Index [December] is [12]&lt;br /&gt;
Index [February] is [2]&lt;br /&gt;
Index [January] is [1]&lt;br /&gt;
Index [July] is [7]&lt;br /&gt;
Index [June] is [6]&lt;br /&gt;
Index [March] is [3]&lt;br /&gt;
Index [May] is [5]&lt;br /&gt;
Index [November] is [11]&lt;br /&gt;
Index [October] is [10]&lt;br /&gt;
Index [September] is [9]&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
==Exit outer loop with &amp;quot;EXIT LabelName When&amp;quot; statement==&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;   BEGIN&lt;br /&gt;
  2          &amp;lt;&amp;lt;outerloop&amp;gt;&amp;gt;&lt;br /&gt;
  3          FOR v_outerloopcounter IN 1..2 LOOP&lt;br /&gt;
  4               &amp;lt;&amp;lt;innerloop&amp;gt;&amp;gt;&lt;br /&gt;
  5               FOR v_innerloopcounter IN 1..4 LOOP&lt;br /&gt;
  6                    DBMS_OUTPUT.PUT_LINE(&amp;quot;Outer Loop counter is &amp;quot;&lt;br /&gt;
  7                         || v_outerloopcounter ||&lt;br /&gt;
  8                         &amp;quot; Inner Loop counter is &amp;quot; || v_innerloopcounter);&lt;br /&gt;
  9                         EXIT outerloop WHEN v_innerloopcounter = 3;&lt;br /&gt;
 10              END LOOP innerloop;&lt;br /&gt;
 11         END LOOP outerloop;&lt;br /&gt;
 12    END;&lt;br /&gt;
 13    /&lt;br /&gt;
Outer Loop counter is 1 Inner Loop counter is 1&lt;br /&gt;
Outer Loop counter is 1 Inner Loop counter is 2&lt;br /&gt;
Outer Loop counter is 1 Inner Loop counter is 3&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;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exit to a label==&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          just_a_num NUMBER := 1;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4          &amp;lt;&amp;lt;just_a_loop&amp;gt;&amp;gt;&lt;br /&gt;
  5          LOOP&lt;br /&gt;
  6                  dbms_output.put_line(just_a_num);&lt;br /&gt;
  7          EXIT just_a_loop&lt;br /&gt;
  8          WHEN (just_a_num &amp;gt;= 10);&lt;br /&gt;
  9                  just_a_num := just_a_num + 1;&lt;br /&gt;
 10          END LOOP;&lt;br /&gt;
 11  END;&lt;br /&gt;
 12  /&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
10&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;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;
==EXIT WHEN clause.==&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 MyTable (&lt;br /&gt;
  2    num_col    NUMBER,&lt;br /&gt;
  3    char_col   VARCHAR2(60)&lt;br /&gt;
  4    );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v_Counter BINARY_INTEGER := 1;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    LOOP&lt;br /&gt;
  5      INSERT INTO MyTable&lt;br /&gt;
  6        VALUES (v_Counter, &amp;quot;Loop index&amp;quot;);&lt;br /&gt;
  7      v_Counter := v_Counter + 1;&lt;br /&gt;
  8      EXIT WHEN v_Counter &amp;gt; 50;&lt;br /&gt;
  9    END LOOP;&lt;br /&gt;
 10  END;&lt;br /&gt;
 11  /&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 MyTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;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;
==Impact of EXIT in a function==&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; -- Impact of EXIT in a function.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE FUNCTION exitfunc(p_pass_string VARCHAR2)&lt;br /&gt;
  2        RETURN NUMBER IS&lt;br /&gt;
  3             len Number := 1;&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5        WHILE len &amp;lt;= LENGTH(p_PASS_STRING) LOOP&lt;br /&gt;
  6             len := len + 1;&lt;br /&gt;
  7             EXIT WHEN SUBSTR(p_PASS_STRING,len,1) = &amp;quot; &amp;quot;;&lt;br /&gt;
  8        END LOOP;&lt;br /&gt;
  9        RETURN len ;&lt;br /&gt;
 10  END exitfunc;&lt;br /&gt;
 11  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; --  Executing EXIT within a function.&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2       v_MYTEXT VARCHAR2(20) := &amp;quot;THIS IS A TEST&amp;quot;;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4       DBMS_OUTPUT.PUT_LINE(&amp;quot;Total count is &amp;quot; || exitfunc(v_MYTEXT));&lt;br /&gt;
  5  END;&lt;br /&gt;
  6  /&lt;br /&gt;
Total count is 5&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;
==Unconstrained loop: exit==&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; -- unconstrained loop: exit&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;  declare&lt;br /&gt;
  2      l_loops number := 0;&lt;br /&gt;
  3    begin&lt;br /&gt;
  4      dbms_output.put_line(&amp;quot;Before my loop&amp;quot;);&lt;br /&gt;
  5&lt;br /&gt;
  6      loop&lt;br /&gt;
  7        if l_loops &amp;gt; 4 then&lt;br /&gt;
  8          exit;&lt;br /&gt;
  9        end if;&lt;br /&gt;
 10        dbms_output.put_line(&amp;quot;Looped &amp;quot; || l_loops || &amp;quot; times&amp;quot;);&lt;br /&gt;
 11        l_loops := l_loops + 1;&lt;br /&gt;
 12      end loop;&lt;br /&gt;
 13&lt;br /&gt;
 14      dbms_output.put_line(&amp;quot;After my loop&amp;quot;);&lt;br /&gt;
 15    end;&lt;br /&gt;
 16    /&lt;br /&gt;
Before my loop&lt;br /&gt;
Looped 0 times&lt;br /&gt;
Looped 1 times&lt;br /&gt;
Looped 2 times&lt;br /&gt;
Looped 3 times&lt;br /&gt;
Looped 4 times&lt;br /&gt;
After my loop&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;
==Using EXIT with a FOR loop==&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; -- Using EXIT with a FOR loop.&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2        FOR i IN 1..20 LOOP&lt;br /&gt;
  3             IF MOD(i,2) = 0 THEN&lt;br /&gt;
  4                  DBMS_OUTPUT.PUT_LINE(&amp;quot;The AREA of the circle is &amp;quot; || i*i * mypi);&lt;br /&gt;
  5             END IF;&lt;br /&gt;
  6             IF i = 10 THEN&lt;br /&gt;
  7                  EXIT;&lt;br /&gt;
  8             END IF;&lt;br /&gt;
  9        END LOOP;&lt;br /&gt;
 10   END;&lt;br /&gt;
 11  /&lt;br /&gt;
The AREA of the circle is 12.56&lt;br /&gt;
The AREA of the circle is 50.24&lt;br /&gt;
The AREA of the circle is 113.04&lt;br /&gt;
The AREA of the circle is 200.96&lt;br /&gt;
The AREA of the circle is 314&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
==Using EXIT with a simple LOOP==&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; -- Using EXIT with a simple LOOP.&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2       LOOP&lt;br /&gt;
  3            NULL;&lt;br /&gt;
  4            EXIT;&lt;br /&gt;
  5       END LOOP;&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;
           &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;
==Using EXIT with a WHILE loop==&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; -- Using EXIT with a WHILE loop.&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2       r NUMBER := 2;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4       WHILE TRUE LOOP&lt;br /&gt;
  5            DBMS_OUTPUT.PUT_LINE(&amp;quot;The Area is &amp;quot; || mypi * r * r);&lt;br /&gt;
  6            IF r = 10 THEN&lt;br /&gt;
  7                EXIT;&lt;br /&gt;
  8            END IF;&lt;br /&gt;
  9            r := r + 2 ;&lt;br /&gt;
 10       END LOOP;&lt;br /&gt;
 11  END;&lt;br /&gt;
 12  /&lt;br /&gt;
The Area is 12.56&lt;br /&gt;
The Area is 50.24&lt;br /&gt;
The Area is 113.04&lt;br /&gt;
The Area is 200.96&lt;br /&gt;
The Area is 314&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;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>