<?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%2FLoop</id>
		<title>Oracle PL/SQL Tutorial/PL SQL Statements/Loop - История изменений</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%2FLoop"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Statements/Loop&amp;action=history"/>
		<updated>2026-05-24T03:19:44Z</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/Loop&amp;diff=3184&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/Loop&amp;diff=3184&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/Loop&amp;diff=3185&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/Loop&amp;diff=3185&amp;oldid=prev"/>
				<updated>2010-05-26T10:05:35Z</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 SQL Replacement for Regular Loops==&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; -- 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;&lt;br /&gt;
SQL&amp;gt; create or replace function f_checkDeptLimit_yn (i_deptNo VARCHAR,i_limit_nr NUMBER, i_income_nr NUMBER)&lt;br /&gt;
  2  return VARCHAR2&lt;br /&gt;
  3  is&lt;br /&gt;
  4      v_counter_nr NUMBER:=0;&lt;br /&gt;
  5      v_error_yn   VARCHAR2(1):=&amp;quot;N&amp;quot;;&lt;br /&gt;
  6  begin&lt;br /&gt;
  7      select count(*)&lt;br /&gt;
  8      into v_counter_nr&lt;br /&gt;
  9      from employee&lt;br /&gt;
 10      where id = i_deptNo&lt;br /&gt;
 11      and nvl(salary,0)&amp;lt;i_income_nr&lt;br /&gt;
 12      and rownum &amp;lt; i_limit_nr+1 ;&lt;br /&gt;
 13&lt;br /&gt;
 14      if v_counter_nr=i_limit_nr then&lt;br /&gt;
 15          v_error_yn:=&amp;quot;Y&amp;quot;;&lt;br /&gt;
 16      end if;&lt;br /&gt;
 17      return v_error_yn;&lt;br /&gt;
 18  end;&lt;br /&gt;
 19  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select f_limit_yn(&amp;quot;01&amp;quot;, 1000, 2000) from dual;&lt;br /&gt;
F_LIMIT_YN(&amp;quot;01&amp;quot;,1000,2000)&lt;br /&gt;
---------------------------&lt;br /&gt;
N&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;
== Count up by hundreds until we get an 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; SET ECHO ON&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    hundreds_counter  NUMBER(1,-2);&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    hundreds_counter := 100;&lt;br /&gt;
  5    LOOP&lt;br /&gt;
  6      DBMS_OUTPUT.PUT_LINE(hundreds_counter);&lt;br /&gt;
  7      hundreds_counter := hundreds_counter + 100;&lt;br /&gt;
  8    END LOOP;&lt;br /&gt;
  9  EXCEPTION&lt;br /&gt;
 10  WHEN OTHERS THEN&lt;br /&gt;
 11    DBMS_OUTPUT.PUT_LINE(&amp;quot;Done.&amp;quot;);&lt;br /&gt;
 12  END;&lt;br /&gt;
 13  /&lt;br /&gt;
100&lt;br /&gt;
200&lt;br /&gt;
300&lt;br /&gt;
400&lt;br /&gt;
500&lt;br /&gt;
600&lt;br /&gt;
700&lt;br /&gt;
800&lt;br /&gt;
900&lt;br /&gt;
Done.&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;
== Creating a REPEAT...UNTIL Loop==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The Syntax for a Simulated REPEAT...UNTIL Loop&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;
LOOP&lt;br /&gt;
    &amp;lt;statements&amp;gt;&lt;br /&gt;
       IF &amp;lt;condition is true&amp;gt;&lt;br /&gt;
            EXIT;&lt;br /&gt;
       END IF;&lt;br /&gt;
  END LOOP;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Exit a 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== EXIT a LOOP for a certain condition==&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; set echo on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;    DECLARE&lt;br /&gt;
  2          v_Radius NUMBER := 2;&lt;br /&gt;
  3     BEGIN&lt;br /&gt;
  4          LOOP&lt;br /&gt;
  5               DBMS_OUTPUT.PUT_LINE(&amp;quot;The AREA of the circle is &amp;quot; ||&lt;br /&gt;
  6                                     v_RADIUS*v_RADIUS * mypi);&lt;br /&gt;
  7               v_Radius := v_Radius + 2;&lt;br /&gt;
  8               EXIT WHEN v_Radius &amp;gt; 10;&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.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Exiting from Nested Loops==&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; declare&lt;br /&gt;
  2      v_ind     NUMBER;&lt;br /&gt;
  3      v_current NUMBER;&lt;br /&gt;
  4      v_max_printed NUMBER :=10;&lt;br /&gt;
  5      v_printed NUMBER:=0;&lt;br /&gt;
  6  begin&lt;br /&gt;
  7      v_current:=0; -- should not be null!&lt;br /&gt;
  8      &amp;lt;&amp;lt;Main&amp;gt;&amp;gt;&lt;br /&gt;
  9      loop&lt;br /&gt;
 10          v_ind:=0; -- reset each time&lt;br /&gt;
 11          &amp;lt;&amp;lt;Inner&amp;gt;&amp;gt;&lt;br /&gt;
 12          loop&lt;br /&gt;
 13             v_ind:=v_ind+1;&lt;br /&gt;
 14             DBMS_OUTPUT.put_line(v_current);&lt;br /&gt;
 15             v_printed:=v_printed+1;&lt;br /&gt;
 16             exit Main when v_printed = v_max_printed;&lt;br /&gt;
 17             exit when v_ind=4;&lt;br /&gt;
 18          end loop Inner;&lt;br /&gt;
 19          v_current:=v_current+5;&lt;br /&gt;
 20          exit when v_current=25;&lt;br /&gt;
 21      end loop Main;&lt;br /&gt;
 22  end;&lt;br /&gt;
 23  /&lt;br /&gt;
0&lt;br /&gt;
0&lt;br /&gt;
0&lt;br /&gt;
0&lt;br /&gt;
5&lt;br /&gt;
5&lt;br /&gt;
5&lt;br /&gt;
5&lt;br /&gt;
10&lt;br /&gt;
10&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;
== Fetch Cursor data in 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;
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;
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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v_FirstName VARCHAR2(20);&lt;br /&gt;
  3    v_LastName  VARCHAR2(20);&lt;br /&gt;
  4&lt;br /&gt;
  5    CURSOR c_Students IS&lt;br /&gt;
  6      SELECT first_name, last_name FROM employee;&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8    -- Begin cursor processing.&lt;br /&gt;
  9    OPEN c_Students;&lt;br /&gt;
 10    LOOP&lt;br /&gt;
 11      -- Retreive one row.&lt;br /&gt;
 12      FETCH c_Students INTO v_FirstName, v_LastName;&lt;br /&gt;
 13      EXIT WHEN c_Students%NOTFOUND;&lt;br /&gt;
 14    END LOOP;&lt;br /&gt;
 15    CLOSE c_Students;&lt;br /&gt;
 16  END;&lt;br /&gt;
 17  /&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== LOOP END 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET ECHO ON&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    hundreds_counter  NUMBER(1,-2);&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    hundreds_counter := 100;&lt;br /&gt;
  5    LOOP&lt;br /&gt;
  6      DBMS_OUTPUT.PUT_LINE(hundreds_counter);&lt;br /&gt;
  7      hundreds_counter := hundreds_counter + 100;&lt;br /&gt;
  8    END LOOP;&lt;br /&gt;
  9  EXCEPTION&lt;br /&gt;
 10  WHEN OTHERS THEN&lt;br /&gt;
 11    DBMS_OUTPUT.PUT_LINE(&amp;quot;Done.&amp;quot;);&lt;br /&gt;
 12  END;&lt;br /&gt;
 13  /&lt;br /&gt;
100&lt;br /&gt;
200&lt;br /&gt;
300&lt;br /&gt;
400&lt;br /&gt;
500&lt;br /&gt;
600&lt;br /&gt;
700&lt;br /&gt;
800&lt;br /&gt;
900&lt;br /&gt;
Done.&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;
== Loops==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You may use a loop to run one or more statements multiple times.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There are three types of loops in PL/SQL:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;Simple loops  Run until you explicitly end the loop&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;WHILE loops  Run until a specified condition occurs&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;FOR loops  Run a predetermined number of times&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
22. 3. Loop&lt;br /&gt;
22. 3. 1. &lt;br /&gt;
Loops&lt;br /&gt;
22. 3. 2. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/SimpleLoops.htm&amp;quot;&amp;gt;Simple Loops&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 3. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/LOOPENDLOOP.htm&amp;quot;&amp;gt;LOOP END LOOP&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 4. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/Countupbyhundredsuntilwegetanerror.htm&amp;quot;&amp;gt;Count up by hundreds until we get an error&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 5. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/TheEXITWHENstatementcanappearanywhereintheloopcode.htm&amp;quot;&amp;gt;The EXIT WHEN statement can appear anywhere in the loop code.&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 6. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/ExitaLOOP.htm&amp;quot;&amp;gt;Exit a LOOP&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 7. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/EXITaLOOPforacertaincondition.htm&amp;quot;&amp;gt;EXIT a LOOP for a certain condition&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 8. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/NestedloopsLoopinsideofaLoop.htm&amp;quot;&amp;gt;Nested loops: Loop inside of a Loop&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 9. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/ExitingfromNestedLoops.htm&amp;quot;&amp;gt;Exiting from Nested Loops&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 10. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/UsingLabelsandEXITStatementswithLoops.htm&amp;quot;&amp;gt;Using Labels and EXIT Statements with Loops&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 11. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/CreatingaREPEATUNTILLoop.htm&amp;quot;&amp;gt;Creating a REPEAT...UNTIL Loop&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 12. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/UseLOOPtoinsertdatatoatable.htm&amp;quot;&amp;gt;Use LOOP to insert data to a table&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 13. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/FetchCursordatainLOOP.htm&amp;quot;&amp;gt;Fetch Cursor data in LOOP&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 14. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/ASQLReplacementforRegularLoops.htm&amp;quot;&amp;gt;A SQL Replacement for Regular Loops&amp;lt;/a&amp;gt;&lt;br /&gt;
22. 3. 15. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0440__PL-SQL-Statements/Namedloopblock.htm&amp;quot;&amp;gt;Named loop block&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Named loop 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; set serveroutput on size 500000&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2&lt;br /&gt;
  3    year_number PLS_INTEGER := 1992;&lt;br /&gt;
  4&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6&lt;br /&gt;
  7    &amp;lt;&amp;lt;year_loop&amp;gt;&amp;gt;&lt;br /&gt;
  8    WHILE year_number &amp;lt;= 1995&lt;br /&gt;
  9    LOOP&lt;br /&gt;
 10&lt;br /&gt;
 11      dbms_output.put_line(&amp;quot;year = &amp;quot;||year_number);&lt;br /&gt;
 12&lt;br /&gt;
 13      &amp;lt;&amp;lt;month_loop&amp;gt;&amp;gt;&lt;br /&gt;
 14      FOR month_number IN 1 .. 12&lt;br /&gt;
 15      LOOP&lt;br /&gt;
 16        dbms_output.put_line(&amp;quot;...and month = &amp;quot;||month_number);&lt;br /&gt;
 17&lt;br /&gt;
 18      END LOOP month_loop;&lt;br /&gt;
 19&lt;br /&gt;
 20      year_number := year_number + 2;&lt;br /&gt;
 21&lt;br /&gt;
 22    END LOOP year_loop;&lt;br /&gt;
 23&lt;br /&gt;
 24  END;&lt;br /&gt;
 25  /&lt;br /&gt;
year = 1992&lt;br /&gt;
...and month = 1&lt;br /&gt;
...and month = 2&lt;br /&gt;
...and month = 3&lt;br /&gt;
...and month = 4&lt;br /&gt;
...and month = 5&lt;br /&gt;
...and month = 6&lt;br /&gt;
...and month = 7&lt;br /&gt;
...and month = 8&lt;br /&gt;
...and month = 9&lt;br /&gt;
...and month = 10&lt;br /&gt;
...and month = 11&lt;br /&gt;
...and month = 12&lt;br /&gt;
year = 1994&lt;br /&gt;
...and month = 1&lt;br /&gt;
...and month = 2&lt;br /&gt;
...and month = 3&lt;br /&gt;
...and month = 4&lt;br /&gt;
...and month = 5&lt;br /&gt;
...and month = 6&lt;br /&gt;
...and month = 7&lt;br /&gt;
...and month = 8&lt;br /&gt;
...and month = 9&lt;br /&gt;
...and month = 10&lt;br /&gt;
...and month = 11&lt;br /&gt;
...and month = 12&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;
== Nested loops: Loop inside of a 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      v_ind     NUMBER;&lt;br /&gt;
  3      v_current NUMBER;&lt;br /&gt;
  4  begin&lt;br /&gt;
  5      v_current:=0; -- should not be null!&lt;br /&gt;
  6      loop&lt;br /&gt;
  7          v_ind:=0; -- reset each time&lt;br /&gt;
  8          loop&lt;br /&gt;
  9              v_ind:=v_ind+1;&lt;br /&gt;
 10              DBMS_OUTPUT.put_line(v_current);&lt;br /&gt;
 11              exit when v_ind=4;&lt;br /&gt;
 12          end loop;&lt;br /&gt;
 13          v_current:=v_current+5;&lt;br /&gt;
 14          exit when v_current=25;&lt;br /&gt;
 15      end loop;&lt;br /&gt;
 16  end;&lt;br /&gt;
 17  /&lt;br /&gt;
0&lt;br /&gt;
0&lt;br /&gt;
0&lt;br /&gt;
0&lt;br /&gt;
5&lt;br /&gt;
5&lt;br /&gt;
5&lt;br /&gt;
5&lt;br /&gt;
10&lt;br /&gt;
10&lt;br /&gt;
10&lt;br /&gt;
10&lt;br /&gt;
15&lt;br /&gt;
15&lt;br /&gt;
15&lt;br /&gt;
15&lt;br /&gt;
20&lt;br /&gt;
20&lt;br /&gt;
20&lt;br /&gt;
20&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;
== Simple Loops==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A simple loop runs until you explicitly end the loop. The syntax for a simple loop is as follows:&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;
LOOP&lt;br /&gt;
  statements&lt;br /&gt;
END LOOP;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;p&amp;gt;To end the loop, you use either an EXIT or EXIT WHEN statement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The EXIT statement ends a loop immediately.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;EXIT WHEN statement ends a loop when a specified condition occurs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The EXIT WHEN statement can appear anywhere in the loop code.==&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&lt;br /&gt;
SQL&amp;gt; set echo on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;    DECLARE&lt;br /&gt;
  2         v_Radius 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 * v_Radius * v_Radius);&lt;br /&gt;
  6              EXIT WHEN v_RADIUS = 10;&lt;br /&gt;
  7              v_Radius := v_Radius + 2 ;&lt;br /&gt;
  8         END LOOP;&lt;br /&gt;
  9    END;&lt;br /&gt;
 10    /&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use LOOP to insert data to a table==&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;&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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2    FOR v_LoopCounter IN 1..50 LOOP&lt;br /&gt;
  3      INSERT INTO employee (id)&lt;br /&gt;
  4        VALUES (v_LoopCounter);&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;
SQL&amp;gt; select * from employee;&lt;br /&gt;
ID   FIRST_NAME           LAST_NAME            START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- -------------------- -------------------- --------- --------- ---------- ---------- ---------------&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;
11&lt;br /&gt;
12&lt;br /&gt;
13&lt;br /&gt;
14&lt;br /&gt;
15&lt;br /&gt;
16&lt;br /&gt;
17&lt;br /&gt;
18&lt;br /&gt;
19&lt;br /&gt;
20&lt;br /&gt;
21&lt;br /&gt;
22&lt;br /&gt;
23&lt;br /&gt;
24&lt;br /&gt;
25&lt;br /&gt;
26&lt;br /&gt;
27&lt;br /&gt;
28&lt;br /&gt;
29&lt;br /&gt;
30&lt;br /&gt;
31&lt;br /&gt;
32&lt;br /&gt;
33&lt;br /&gt;
34&lt;br /&gt;
35&lt;br /&gt;
36&lt;br /&gt;
37&lt;br /&gt;
38&lt;br /&gt;
39&lt;br /&gt;
40&lt;br /&gt;
41&lt;br /&gt;
42&lt;br /&gt;
43&lt;br /&gt;
44&lt;br /&gt;
45&lt;br /&gt;
46&lt;br /&gt;
47&lt;br /&gt;
48&lt;br /&gt;
49&lt;br /&gt;
50&lt;br /&gt;
50 rows selected.&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Using Labels and EXIT Statements with Loops==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You can use labels within loops to identify a loop.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Syntax for Using Labels with Loops&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;
&amp;lt;&amp;lt;label_name1&amp;gt;&amp;gt;&lt;br /&gt;
  LOOP (FOR, WHILE, LOOP)&lt;br /&gt;
       &amp;lt;&amp;lt;label_name2&amp;gt;&amp;gt;&lt;br /&gt;
       LOOP (FOR, WHILE, LOOP)&lt;br /&gt;
            ...&lt;br /&gt;
       END LOOP &amp;lt;&amp;lt;label_name2&amp;gt;&amp;gt;&lt;br /&gt;
  END LOOP &amp;lt;&amp;lt;label_name1&amp;gt;&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>