<?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%2FCode_Block</id>
		<title>Oracle PL/SQL Tutorial/PL SQL Programming/Code Block - История изменений</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%2FCode_Block"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/Code_Block&amp;action=history"/>
		<updated>2026-04-05T03:41:08Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/Code_Block&amp;diff=4019&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/Code_Block&amp;diff=4019&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/Code_Block&amp;diff=4020&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/Code_Block&amp;diff=4020&amp;oldid=prev"/>
				<updated>2010-05-26T10:08:22Z</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 PL/SQL 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;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE myItemTable (&lt;br /&gt;
  2     item_code varchar2(6) PRIMARY KEY,&lt;br /&gt;
  3     item_descr varchar2(20) NOT NULL);&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_item_code VARCHAR2(6);&lt;br /&gt;
  3    v_item_descr VARCHAR2(20);&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    v_item_code :=&amp;quot;sqle&amp;quot;;&lt;br /&gt;
  6    v_item_descr :=&amp;quot;a web site for Oracle&amp;quot;;&lt;br /&gt;
  7    INSERT INTO myItemTable VALUES (v_item_code,v_item_descr);&lt;br /&gt;
  8  EXCEPTION WHEN OTHERS THEN&lt;br /&gt;
  9    dbms_output.put_line(SQLERRM);&lt;br /&gt;
 10  END;&lt;br /&gt;
 11  /&lt;br /&gt;
ORA-06502: PL/SQL: numeric or value error: character string buffer too small&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from myItemTable;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myItemTable;&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;
== Demonstrate nested PL/SQL blocks==&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_custno                NUMBER := 100;&lt;br /&gt;
  3  begin&lt;br /&gt;
  4     dbms_output.put_line(v_custno) ;&lt;br /&gt;
  5     declare&lt;br /&gt;
  6             v_state         CHAR(2):= &amp;quot;NY&amp;quot; ;&lt;br /&gt;
  7     begin&lt;br /&gt;
  8             dbms_output.put_line(v_custno || v_state) ;&lt;br /&gt;
  9     end ;&lt;br /&gt;
 10  end ;&lt;br /&gt;
 11  /&lt;br /&gt;
100&lt;br /&gt;
100NY&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Inline procedure==&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; DECLARE&lt;br /&gt;
  2     PROCEDURE myProc (dt IN VARCHAR2) IS&lt;br /&gt;
  3     BEGIN&lt;br /&gt;
  4        DBMS_OUTPUT.PUT_LINE (dt || &amp;quot; -&amp;gt; &amp;quot; || ADD_MONTHS (dt, 1));&lt;br /&gt;
  5     END;&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7     myProc (&amp;quot;30-JAN-99&amp;quot;);&lt;br /&gt;
  8     myProc (&amp;quot;27-FEB-99&amp;quot;);&lt;br /&gt;
  9  END;&lt;br /&gt;
 10  /&lt;br /&gt;
30-JAN-99 -&amp;gt; 28-FEB-99&lt;br /&gt;
27-FEB-99 -&amp;gt; 27-MAR-99&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;
== Inner 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;
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  id                             number,&lt;br /&gt;
  3  employee_type_id                 number,&lt;br /&gt;
  4  external_id                    varchar2(30),&lt;br /&gt;
  5  first_name                     varchar2(30),&lt;br /&gt;
  6  middle_name                    varchar2(30),&lt;br /&gt;
  7  last_name                      varchar2(30),&lt;br /&gt;
  8  name                           varchar2(100),&lt;br /&gt;
  9  birth_date                     date  ,&lt;br /&gt;
 10  gender_id                      number );&lt;br /&gt;
Table 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 gender (&lt;br /&gt;
  2  id                             number,&lt;br /&gt;
  3  code                           varchar2(30),&lt;br /&gt;
  4  description                    varchar2(80),&lt;br /&gt;
  5  active_date                    date          default SYSDATE  not null,&lt;br /&gt;
  6  inactive_date                  date );&lt;br /&gt;
Table 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; insert into gender ( id, code, description ) values ( 1, &amp;quot;F&amp;quot;, &amp;quot;Female&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into gender ( id, code, description ) values ( 2, &amp;quot;M&amp;quot;, &amp;quot;Male&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into gender ( id, code, description ) values ( 3, &amp;quot;U&amp;quot;, &amp;quot;Unknown&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table employee_type (&lt;br /&gt;
  2  id                             number,&lt;br /&gt;
  3  code                           varchar2(30),&lt;br /&gt;
  4  description                    varchar2(80),&lt;br /&gt;
  5  active_date                    date          default SYSDATE  not null,&lt;br /&gt;
  6  inactive_date                  date );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee_type(id,code,description)values(1,&amp;quot;C&amp;quot;,&amp;quot;Contractor&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employee_type(id,code,description)values(2,&amp;quot;E&amp;quot;,&amp;quot;Employee&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employee_type(id,code,description)values(3,&amp;quot;U&amp;quot;,&amp;quot;Unknown&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; set serveroutput on size 1000000;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2  n_count                               number := 0;&lt;br /&gt;
  3&lt;br /&gt;
  4  FUNCTION add_worker(&lt;br /&gt;
  5  aiv_first_name                        employee.first_name%TYPE,&lt;br /&gt;
  6  aiv_middle_name                       employee.middle_name%TYPE,&lt;br /&gt;
  7  aiv_last_name                         employee.last_name%TYPE,&lt;br /&gt;
  8  aid_birth_date                        employee.birth_date%TYPE,&lt;br /&gt;
  9  aiv_gender_code                       gender.code%TYPE,&lt;br /&gt;
 10  aiv_employee_type_code                employee_type.code%TYPE)&lt;br /&gt;
 11  return                                number is&lt;br /&gt;
 12&lt;br /&gt;
 13  v_name                                employee.name%TYPE;&lt;br /&gt;
 14&lt;br /&gt;
 15  begin&lt;br /&gt;
 16    v_name        := rtrim(aiv_last_name||&amp;quot;, &amp;quot;||aiv_first_name||&amp;quot; &amp;quot;||aiv_middle_name);&lt;br /&gt;
 17    begin&lt;br /&gt;
 18      insert into employee (&lt;br /&gt;
 19             id,&lt;br /&gt;
 20             employee_type_id,&lt;br /&gt;
 21             external_id,&lt;br /&gt;
 22             first_name,&lt;br /&gt;
 23             middle_name,&lt;br /&gt;
 24             last_name,&lt;br /&gt;
 25             name,&lt;br /&gt;
 26             birth_date,&lt;br /&gt;
 27             gender_id )&lt;br /&gt;
 28      select 1,&lt;br /&gt;
 29             myCursor.id,&lt;br /&gt;
 30             lpad(to_char(1), 9, &amp;quot;0&amp;quot;),&lt;br /&gt;
 31             aiv_first_name,&lt;br /&gt;
 32             aiv_middle_name,&lt;br /&gt;
 33             aiv_last_name,&lt;br /&gt;
 34             v_name,&lt;br /&gt;
 35             aid_birth_date,&lt;br /&gt;
 36             c2.id&lt;br /&gt;
 37      from   employee_type myCursor,&lt;br /&gt;
 38             gender c2&lt;br /&gt;
 39      where  myCursor.code = aiv_employee_type_code&lt;br /&gt;
 40      and    c2.code = aiv_gender_code&lt;br /&gt;
 41      and not exists (&lt;br /&gt;
 42        select 1&lt;br /&gt;
 43        from   employee x&lt;br /&gt;
 44        where  x.name       = v_name&lt;br /&gt;
 45        and    x.birth_date = aid_birth_date&lt;br /&gt;
 46        and    x.gender_id  = c2.id );&lt;br /&gt;
 47&lt;br /&gt;
 48      return sql%rowcount;&lt;br /&gt;
 49    exception&lt;br /&gt;
 50      when OTHERS then&lt;br /&gt;
 51        raise_application_error(-20001, SQLERRM||&amp;quot; on insert employee&amp;quot;||&amp;quot; in add_worker&amp;quot;);&lt;br /&gt;
 52    end;&lt;br /&gt;
 53  end add_worker;&lt;br /&gt;
 54&lt;br /&gt;
 55  begin&lt;br /&gt;
 56    n_count := n_count + add_worker(&amp;quot;JOHN&amp;quot;,   &amp;quot;J.&amp;quot;, &amp;quot;DOE&amp;quot;, to_date(&amp;quot;19800101&amp;quot;, &amp;quot;YYYYMMDD&amp;quot;), &amp;quot;M&amp;quot;, &amp;quot;C&amp;quot;);&lt;br /&gt;
 57    n_count := n_count + add_worker(&amp;quot;JANE&amp;quot;,   &amp;quot;J.&amp;quot;, &amp;quot;DOE&amp;quot;, to_date(&amp;quot;19800101&amp;quot;, &amp;quot;YYYYMMDD&amp;quot;), &amp;quot;F&amp;quot;, &amp;quot;E&amp;quot;);&lt;br /&gt;
 58    n_count := n_count + add_worker(&amp;quot;JOHNNY&amp;quot;, &amp;quot;E.&amp;quot;, &amp;quot;DOE&amp;quot;, to_date(&amp;quot;19980101&amp;quot;, &amp;quot;YYYYMMDD&amp;quot;), &amp;quot;M&amp;quot;, &amp;quot;E&amp;quot;);&lt;br /&gt;
 59    n_count := n_count + add_worker(&amp;quot;JANIE&amp;quot;,  &amp;quot;E.&amp;quot;, &amp;quot;DOE&amp;quot;, to_date(&amp;quot;19980101&amp;quot;, &amp;quot;YYYYMMDD&amp;quot;), &amp;quot;F&amp;quot;, &amp;quot;E&amp;quot;);&lt;br /&gt;
 60    DBMS_OUTPUT.PUT_LINE(to_char(n_count)||&amp;quot; row(s) inserted.&amp;quot;);&lt;br /&gt;
 61  end;&lt;br /&gt;
 62  /&lt;br /&gt;
4 row(s) inserted.&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table gender;&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;&lt;br /&gt;
SQL&amp;gt; drop table employee_type;&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;
== Inner procedure in an anonymous 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table t ( x varchar2(30) );&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      procedure method1( p_data in varchar2 )&lt;br /&gt;
  3      is&lt;br /&gt;
  4      begin&lt;br /&gt;
  5          execute immediate &amp;quot;insert into t(x) values(:x)&amp;quot;&lt;br /&gt;
  6          using p_data;&lt;br /&gt;
  7      end method1;&lt;br /&gt;
  8&lt;br /&gt;
  9      procedure method2( p_data in varchar2 )&lt;br /&gt;
 10      is&lt;br /&gt;
 11      begin&lt;br /&gt;
 12          execute immediate &amp;quot;insert into t(x) values( &amp;quot;&amp;quot;&amp;quot; ||replace( p_data,&amp;quot;&amp;quot;&amp;quot;&amp;quot;, &amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot; ) || &amp;quot;&amp;quot;&amp;quot; )&amp;quot;;&lt;br /&gt;
 13      end method2;&lt;br /&gt;
 14  begin&lt;br /&gt;
 15      for i in 1 .. 10000&lt;br /&gt;
 16      loop&lt;br /&gt;
 17          method1( &amp;quot;row &amp;quot; || I );&lt;br /&gt;
 18      end loop;&lt;br /&gt;
 19&lt;br /&gt;
 20      for i in 1 .. 10000&lt;br /&gt;
 21      loop&lt;br /&gt;
 22          method2( &amp;quot;row &amp;quot; || I );&lt;br /&gt;
 23      end loop;&lt;br /&gt;
 24&lt;br /&gt;
 25  end;&lt;br /&gt;
 26  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table t;&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;
== Select the first names for the Doe family from the Worker 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; create table employee (&lt;br /&gt;
  2  id                             number,&lt;br /&gt;
  3  employee_type_id               number,&lt;br /&gt;
  4  external_id                    varchar2(30),&lt;br /&gt;
  5  first_name                     varchar2(30),&lt;br /&gt;
  6  middle_name                    varchar2(30),&lt;br /&gt;
  7  last_name                      varchar2(30),&lt;br /&gt;
  8  name                           varchar2(100),&lt;br /&gt;
  9  birth_date                     date  ,&lt;br /&gt;
 10  gender_id                      number );&lt;br /&gt;
Table 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; set serveroutput on size 1000000;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2&lt;br /&gt;
  3  v_first_name                          employee.first_name%TYPE;&lt;br /&gt;
  4  n_id                                  employee.id%TYPE;&lt;br /&gt;
  5&lt;br /&gt;
  6  FUNCTION get_first_name(&lt;br /&gt;
  7  aion_id                        in out employee.id%TYPE,&lt;br /&gt;
  8  aiv_last_name                  in     employee.last_name%TYPE)&lt;br /&gt;
  9  return                                employee.first_name%TYPE is&lt;br /&gt;
 10&lt;br /&gt;
 11  v_first_name                          employee.first_name%TYPE;&lt;br /&gt;
 12&lt;br /&gt;
 13  begin&lt;br /&gt;
 14    select id,first_name&lt;br /&gt;
 15    into   aion_id,v_first_name&lt;br /&gt;
 16    from   employee&lt;br /&gt;
 17    where  id &amp;gt; aion_id&lt;br /&gt;
 18    and    last_name like aiv_last_name||&amp;quot;%&amp;quot;&lt;br /&gt;
 19    and    rownum = 1;&lt;br /&gt;
 20&lt;br /&gt;
 21    return v_first_name;&lt;br /&gt;
 22  exception&lt;br /&gt;
 23    when NO_DATA_FOUND then&lt;br /&gt;
 24      return v_first_name;&lt;br /&gt;
 25    when OTHERS then&lt;br /&gt;
 26      raise_application_error(-20001, SQLERRM||&amp;quot; on select employee&amp;quot;||&amp;quot; in show_worker&amp;quot;);&lt;br /&gt;
 27  end get_first_name;&lt;br /&gt;
 28&lt;br /&gt;
 29  begin&lt;br /&gt;
 30    n_id := 0;&lt;br /&gt;
 31    loop&lt;br /&gt;
 32      v_first_name := get_first_name(n_id, &amp;quot;DOE&amp;quot;);&lt;br /&gt;
 33      if v_first_name is NULL then&lt;br /&gt;
 34        exit;&lt;br /&gt;
 35      end if;&lt;br /&gt;
 36      DBMS_OUTPUT.PUT_LINE(v_first_name);&lt;br /&gt;
 37    end loop;&lt;br /&gt;
 38  end;&lt;br /&gt;
 39  /&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; drop table employee;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== the forward slash on a line by itself says execute this procedure==&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    /*&lt;br /&gt;
  3     declare local cursors, variables, and methods here,&lt;br /&gt;
  4     but you don&amp;quot;t need to have a declaration section.&lt;br /&gt;
  5    */&lt;br /&gt;
  6  begin&lt;br /&gt;
  7    -- You write your logic here&lt;br /&gt;
  8&lt;br /&gt;
  9    null;  -- Ahhh, you&amp;quot;ve got to have at least one command!&lt;br /&gt;
 10  exception&lt;br /&gt;
 11    when NO_DATA_FOUND then&lt;br /&gt;
 12      raise_application_error(-20000, &amp;quot;Hey, No Data Found!&amp;quot;);&lt;br /&gt;
 13  end;&lt;br /&gt;
 14  /&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;
== This is an anonymous procedure, so it has no name==&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; declare&lt;br /&gt;
  2    /*&lt;br /&gt;
  3     declare local cursors, variables, and methods here,&lt;br /&gt;
  4     but you don&amp;quot;t need to have a declaration section.&lt;br /&gt;
  5    */&lt;br /&gt;
  6  begin&lt;br /&gt;
  7    -- You write your logic here&lt;br /&gt;
  8&lt;br /&gt;
  9    null;  -- Ahhh, you&amp;quot;ve got to have at least one command!&lt;br /&gt;
 10  exception&lt;br /&gt;
 11    when NO_DATA_FOUND then&lt;br /&gt;
 12      raise_application_error(-20000, &amp;quot;Hey, No Data Found!&amp;quot;);&lt;br /&gt;
 13  end;&lt;br /&gt;
 14  /&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;
== Uses a PL/SQL Nested 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;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE myItemTable (&lt;br /&gt;
  2     item_code varchar2(6) PRIMARY KEY,&lt;br /&gt;
  3     item_descr varchar2(20) NOT NULL);&lt;br /&gt;
Table 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; DECLARE&lt;br /&gt;
  2    v_item_code VARCHAR2(6);&lt;br /&gt;
  3    v_item_descr VARCHAR2(20);&lt;br /&gt;
  4    v_num NUMBER(1);&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6&lt;br /&gt;
  7    v_item_code :=&amp;quot;sqle&amp;quot;;&lt;br /&gt;
  8&lt;br /&gt;
  9    v_item_descr :=&amp;quot;a website for Oracle&amp;quot;;&lt;br /&gt;
 10&lt;br /&gt;
 11    BEGIN&lt;br /&gt;
 12&lt;br /&gt;
 13      SELECT 1 INTO v_num FROM myItemTable WHERE item_code =v_item_code;&lt;br /&gt;
 14&lt;br /&gt;
 15    EXCEPTION&lt;br /&gt;
 16&lt;br /&gt;
 17      WHEN NO_DATA_FOUND THEN&lt;br /&gt;
 18        v_num :=0;&lt;br /&gt;
 19&lt;br /&gt;
 20      WHEN OTHERS THEN&lt;br /&gt;
 21        dbms_output.put_line(&amp;quot;Error in SELECT:&amp;quot;||SQLERRM);&lt;br /&gt;
 22        RETURN;&lt;br /&gt;
 23    END;&lt;br /&gt;
 24&lt;br /&gt;
 25    IF (v_num =0)THEN&lt;br /&gt;
 26&lt;br /&gt;
 27      INSERT INTO myItemTable VALUES (v_item_code,v_item_descr);&lt;br /&gt;
 28&lt;br /&gt;
 29    END IF;&lt;br /&gt;
 30    dbms_output.put_line(&amp;quot;Successful Completion&amp;quot;);&lt;br /&gt;
 31  EXCEPTION WHEN OTHERS THEN&lt;br /&gt;
 32    dbms_output.put_line(SQLERRM);&lt;br /&gt;
 33  END;&lt;br /&gt;
 34  /&lt;br /&gt;
Successful Completion&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; select * from myItemTable;&lt;br /&gt;
ITEM_C ITEM_DESCR&lt;br /&gt;
------ --------------------&lt;br /&gt;
sqle a website for Oracle&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myItemTable;&lt;br /&gt;
Table dropped.&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>