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

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/Introduction&amp;diff=4021&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/Introduction&amp;diff=4021&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/Introduction&amp;diff=4022&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/Introduction&amp;diff=4022&amp;oldid=prev"/>
				<updated>2010-05-26T10:08:23Z</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;== An example of an anonymous 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;
DECLARE&lt;br /&gt;
  hundreds_counter  NUMBER(1,-2);&lt;br /&gt;
BEGIN&lt;br /&gt;
  hundreds_counter := 100;&lt;br /&gt;
  LOOP&lt;br /&gt;
    DBMS_OUTPUT.PUT_LINE(hundreds_counter);&lt;br /&gt;
     hundreds_counter := hundreds_counter + 100;&lt;br /&gt;
   END LOOP;&lt;br /&gt;
 EXCEPTION&lt;br /&gt;
 WHEN OTHERS THEN&lt;br /&gt;
   DBMS_OUTPUT.PUT_LINE(&amp;quot;That is as high as you can go.&amp;quot;);&lt;br /&gt;
END;&lt;br /&gt;
/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Anonymous blocks can be nested in the procedure and exception blocks in as many levels as you want==&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;
&amp;lt;&amp;lt;MAIN&amp;gt;&amp;gt;&lt;br /&gt;
declare&lt;br /&gt;
    ...&lt;br /&gt;
     Declaration section&lt;br /&gt;
    ...&lt;br /&gt;
begin&lt;br /&gt;
    ...&lt;br /&gt;
    Procedural section&lt;br /&gt;
    ...&lt;br /&gt;
        &amp;lt;&amp;lt;SUB1&amp;gt;&amp;gt;&lt;br /&gt;
        declare&lt;br /&gt;
        ...&lt;br /&gt;
        begin&lt;br /&gt;
        ...&lt;br /&gt;
        end;&lt;br /&gt;
    ...&lt;br /&gt;
exception&lt;br /&gt;
    ...&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;p&amp;gt;You can label all blocks including nested ones by using identifiers enclosed in &amp;lt;&amp;lt; &amp;gt;&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This notation allows programmers to reference elements of different blocks.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anonymous Block Structure==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;An anonymous block does not form the body of a procedure, function, or trigger.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Anonymous blocks can be used inline as part of a SQL*Plus script.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Anonymous blocks can also be nested inside procedure and function blocks for error handling.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Syntax for PL/SQL Anonymous Blocks&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;
[DECLARE variable_declarations]&lt;br /&gt;
BEGIN&lt;br /&gt;
  program_code&lt;br /&gt;
  [EXCEPTION error_handling_code]&lt;br /&gt;
END;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;p&amp;gt;error_handling_code controls branches in the event of an error.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The keyword EXCEPTION begins the portion of the block that contains exception-handling code.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The exception-handling portion of a block is optional.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the exception-handling portion is present, any runtime error or exception will cause program control to branch to this part of the block.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Assigning values to variables==&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      v_length NUMBER DEFAULT 5;&lt;br /&gt;
  3      v_height NUMBER := 4;&lt;br /&gt;
  4      v_width  NUMBER;&lt;br /&gt;
  5      v_volume NUMBER;&lt;br /&gt;
  6      v_min    NUMBER;&lt;br /&gt;
  7  begin&lt;br /&gt;
  8      v_width := 3;&lt;br /&gt;
  9      v_volume:= v_length*v_width*v_height;&lt;br /&gt;
 10      v_min := least(v_length,v_width,v_height);&lt;br /&gt;
 11  end;&lt;br /&gt;
 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;
== Assign SQL query results to PL/SQL variables==&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 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;
&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; declare&lt;br /&gt;
  2      v_name VARCHAR2(256);&lt;br /&gt;
  3  begin&lt;br /&gt;
  4      select first_name&lt;br /&gt;
  5        into v_name&lt;br /&gt;
  6        from employee&lt;br /&gt;
  7      where id=7;&lt;br /&gt;
  8      DBMS_OUTPUT.put_line(&amp;quot;v_name:&amp;quot;||v_name);&lt;br /&gt;
  9&lt;br /&gt;
 10  end;&lt;br /&gt;
 11  /&lt;br /&gt;
v_name:David&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; -- 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;
== Character and string literals in the Oracle world are enclosed by single quotes==&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_char  CHAR(1):=&amp;quot;H&amp;quot;;&lt;br /&gt;
  3      v_text1 VARCHAR2(10) :=&amp;quot;Hello&amp;quot;;&lt;br /&gt;
  4      v_text2    CHAR(1) :=&amp;quot;&amp;quot;; -- the same as NULL&lt;br /&gt;
  5  begin&lt;br /&gt;
  6     NULL;&lt;br /&gt;
  7  End;&lt;br /&gt;
  8  /&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;
== Comments==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;PL/SQL allows two types of comments: single and multi-line.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Single-line comments start with a delimiter -- and go to the end of the line, as shown here:&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;
declare&lt;br /&gt;
  here you should declare variables,&lt;br /&gt;
  constants, etc.&lt;br /&gt;
   ...&lt;br /&gt;
begin&lt;br /&gt;
-- here you place your code&lt;br /&gt;
    ...&lt;br /&gt;
end;&lt;br /&gt;
/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Declaring a Variable by Reference==&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;
declare&lt;br /&gt;
    variable_name  table.column%TYPE;&lt;br /&gt;
    variable_name2 variable_name%TYPE;&lt;br /&gt;
    variable_row   table%ROWTYPE;&lt;br /&gt;
begin&lt;br /&gt;
The following code shows some examples of defining datatypes:&lt;br /&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;
&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; declare&lt;br /&gt;
  2      v_empno1 employee.id%TYPE;&lt;br /&gt;
  3      v_empno2 v_empno1%TYPE;&lt;br /&gt;
  4      v_emp_rec employee%ROWTYPE;&lt;br /&gt;
  5  begin&lt;br /&gt;
  6      NULL;&lt;br /&gt;
  7  end;&lt;br /&gt;
  8  /&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
== Declaring variables==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In PL/SQL, variables must be included in the declaration block before they can be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There are a number of ways to declare a variable.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The most common way is by using a direct declaration, as shown here:&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;
declare&lt;br /&gt;
    variable_name [constant] DATATYPE [DEFAULT value |DEFAULT NULL];&lt;br /&gt;
begin&lt;br /&gt;
    ...&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Delimiters==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A delimiter is a simple or compound symbol that has a special meaning in PL/ SQL.&amp;lt;/p&amp;gt;&lt;br /&gt;
Delimiter&lt;br /&gt;
Description&lt;br /&gt;
+, -, *, /&lt;br /&gt;
Addition, subtraction/negation, multiplication, division&lt;br /&gt;
%&lt;br /&gt;
Attribute indicator&lt;br /&gt;
&amp;quot;&lt;br /&gt;
Character string delimiter&lt;br /&gt;
.&lt;br /&gt;
Component selector&lt;br /&gt;
(,)&lt;br /&gt;
Expression or list delimiter&lt;br /&gt;
:&lt;br /&gt;
Host variable indicator&lt;br /&gt;
,&lt;br /&gt;
Item separator&lt;br /&gt;
&amp;quot;&lt;br /&gt;
Quoted identifier delimiter&lt;br /&gt;
=&lt;br /&gt;
Relational operator&lt;br /&gt;
@&lt;br /&gt;
Remote access indicator&lt;br /&gt;
;&lt;br /&gt;
Statement terminator&lt;br /&gt;
:=&lt;br /&gt;
Assignment operator&lt;br /&gt;
=&amp;gt;&lt;br /&gt;
Association operator&lt;br /&gt;
||&lt;br /&gt;
Concatenation operator&lt;br /&gt;
**&lt;br /&gt;
Exponentiation operator&lt;br /&gt;
&amp;lt;&amp;lt;, &amp;gt;&amp;gt;&lt;br /&gt;
Label delimiter (begin and end)&lt;br /&gt;
/*, */&lt;br /&gt;
Multi-line comment delimiter (begin and end)&lt;br /&gt;
--&lt;br /&gt;
Single-line comment indicator&lt;br /&gt;
..&lt;br /&gt;
Range operator&lt;br /&gt;
&amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=&lt;br /&gt;
Relational operators&lt;br /&gt;
&amp;lt;&amp;gt;, &amp;quot;=, ~=, ^=&lt;br /&gt;
Different version of NOT EQUAL&lt;br /&gt;
&lt;br /&gt;
== Each complete line of the PL/SQL code must end with a semicolon (;).==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To run the code, type / at the beginning of the first blank line after the last line of the code.&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;
SQL&amp;gt; set SERVEROUTPUT ON&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      v_string varchar2(256):=&amp;quot;Hello, World!&amp;quot;;&lt;br /&gt;
  3  begin&lt;br /&gt;
  4      dbms_output.put_line(v_string);&lt;br /&gt;
  5  end;&lt;br /&gt;
  6  /&lt;br /&gt;
Hello, World!&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;
== Examples of Integer and Real Literals==&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      v_int1 BINARY_INTEGER :=5;  -- integer&lt;br /&gt;
  3      v_int2 BINARY_INTEGER :=-5; -- integer&lt;br /&gt;
  4      v_int3 BINARY_INTEGER :=0;  -- integer&lt;br /&gt;
  5      v_int4 BINARY_INTEGER :=+5; -- integer&lt;br /&gt;
  6&lt;br /&gt;
  7      v_real1 NUMBER :=1.0;       -- real&lt;br /&gt;
  8      v_real2 NUMBER :=1.;        -- real&lt;br /&gt;
  9      v_real3 NUMBER :=-7.113;    -- real&lt;br /&gt;
 10      v_real4 NUMBER :=0.2;       -- real&lt;br /&gt;
 11      v_real5 NUMBER :=.3;        -- real&lt;br /&gt;
 12      v_real6 NUMBER :=0.1;       -- real&lt;br /&gt;
 13      v_real7 NUMBER :=2/6;       -- real&lt;br /&gt;
 14  begin&lt;br /&gt;
 15     NULL;&lt;br /&gt;
 16  end;&lt;br /&gt;
 17  /&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;
== Literals as variable values==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Literals are explicit numeric, character, string, or Boolean values not represented by an identifier.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Two types of numeric literals exist:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;Integer literals represent optionally signed numeric values without decimal points.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Real literals represent optionally signed whole or fractional numbers with decimal points.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
24. 1. Introduction&lt;br /&gt;
24. 1. 1. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Writingasimpleprogram.htm&amp;quot;&amp;gt;Writing a simple program&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 2. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/EachcompletelineofthePLSQLcodemustendwithasemicolon.htm&amp;quot;&amp;gt;Each complete line of the PL/SQL code must end with a semicolon (;).&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 3. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/AnonymousBlockStructure.htm&amp;quot;&amp;gt;Anonymous Block Structure&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 4. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Anexampleofananonymousblock.htm&amp;quot;&amp;gt;An example of an anonymous block.&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 5. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Anonymousblockscanbenestedintheprocedureandexceptionblocksinasmanylevelsasyouwant.htm&amp;quot;&amp;gt;Anonymous blocks can be nested in the procedure and exception blocks in as many levels as you want&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 6. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/TheLexicalSetofElements.htm&amp;quot;&amp;gt;The Lexical Set of Elements&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 7. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Delimiters.htm&amp;quot;&amp;gt;Delimiters&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 8. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Comments.htm&amp;quot;&amp;gt;Comments&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 9. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Multilinecommentsstartwithandendwith.htm&amp;quot;&amp;gt;Multi-line comments start with /* and end with */.&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 10. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Declaringvariables.htm&amp;quot;&amp;gt;Declaring variables&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 11. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/DeclaringaVariablebyReference.htm&amp;quot;&amp;gt;Declaring a Variable by Reference&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 12. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Therearesomerestrictionsonthedeclarationofvariables.htm&amp;quot;&amp;gt;There are some restrictions on the declaration of variables:&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 13. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Assigningvaluestovariables.htm&amp;quot;&amp;gt;Assigning values to variables&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 14. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/AssignSQLqueryresultstoPLSQLvariables.htm&amp;quot;&amp;gt;Assign SQL query results to PL/SQL variables&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 15. &lt;br /&gt;
Literals as variable values&lt;br /&gt;
24. 1. 16. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/ExamplesofIntegerandRealLiterals.htm&amp;quot;&amp;gt;Examples of Integer and Real Literals&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 17. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Numericliteralscannotcontaindollarsignsorcommasbuttheycanbewritteninscientificnotation.htm&amp;quot;&amp;gt;Numeric literals cannot contain dollar signs or commas, but they can be written in scientific notation&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 18. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/CharacterandstringliteralsintheOracleworldareenclosedbysinglequotes.htm&amp;quot;&amp;gt;Character and string literals in the Oracle world are enclosed by single quotes&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Multi-line comments start with /* and end with */.==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;These delimiters may span as many lines as needed. An example is shown here:&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;
declare&lt;br /&gt;
/* This code is written by sqle.ru. Dec 20 2007 */&lt;br /&gt;
    ...&lt;br /&gt;
begin&lt;br /&gt;
    ...&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Numeric literals cannot contain dollar signs or commas, but they can be written in scientific notation==&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_real1 NUMBER:=$123456.00; -- INVALID&lt;br /&gt;
  3  --    v_real2 NUMBER:=123,456.00; -- INVALID&lt;br /&gt;
  4        v_real3 NUMBER:=5e10;       -- VALID&lt;br /&gt;
  5        v_real3 NUMBER:=5e-3;       -- VALID&lt;br /&gt;
  6  begin&lt;br /&gt;
  7       NULL;&lt;br /&gt;
  8  end;&lt;br /&gt;
  9  /&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;
&amp;lt;p&amp;gt;Oracle supports scientific notation for numbers between 1E-130 and 1E+126, where E stands for &amp;quot;times ten to the power of&amp;quot;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Lexical Set of Elements==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;The PL/SQL lexical set of elements consists of identifiers, delimiters, literals, and comments.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Identifiers are names of PL/SQL program items and units.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;These items and units could be of different kinds - constants, variables, exceptions, cursors, cursor variables, subprograms, and packages.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;An identifier cannot exceed 30 characters.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;An identifier consists of a letter optionally followed by more letters, numerals, dollar signs, underscores, and number signs.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;By default, identifiers are not case sensitive.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;Identifiers may not be the same as reserved words, so you cannot use the word end as a variable name.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
24. 1. Introduction&lt;br /&gt;
24. 1. 1. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Writingasimpleprogram.htm&amp;quot;&amp;gt;Writing a simple program&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 2. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/EachcompletelineofthePLSQLcodemustendwithasemicolon.htm&amp;quot;&amp;gt;Each complete line of the PL/SQL code must end with a semicolon (;).&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 3. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/AnonymousBlockStructure.htm&amp;quot;&amp;gt;Anonymous Block Structure&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 4. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Anexampleofananonymousblock.htm&amp;quot;&amp;gt;An example of an anonymous block.&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 5. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Anonymousblockscanbenestedintheprocedureandexceptionblocksinasmanylevelsasyouwant.htm&amp;quot;&amp;gt;Anonymous blocks can be nested in the procedure and exception blocks in as many levels as you want&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 6. &lt;br /&gt;
The Lexical Set of Elements&lt;br /&gt;
24. 1. 7. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Delimiters.htm&amp;quot;&amp;gt;Delimiters&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 8. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Comments.htm&amp;quot;&amp;gt;Comments&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 9. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Multilinecommentsstartwithandendwith.htm&amp;quot;&amp;gt;Multi-line comments start with /* and end with */.&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 10. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Declaringvariables.htm&amp;quot;&amp;gt;Declaring variables&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 11. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/DeclaringaVariablebyReference.htm&amp;quot;&amp;gt;Declaring a Variable by Reference&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 12. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Therearesomerestrictionsonthedeclarationofvariables.htm&amp;quot;&amp;gt;There are some restrictions on the declaration of variables:&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 13. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Assigningvaluestovariables.htm&amp;quot;&amp;gt;Assigning values to variables&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 14. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/AssignSQLqueryresultstoPLSQLvariables.htm&amp;quot;&amp;gt;Assign SQL query results to PL/SQL variables&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 15. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Literalsasvariablevalues.htm&amp;quot;&amp;gt;Literals as variable values&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 16. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/ExamplesofIntegerandRealLiterals.htm&amp;quot;&amp;gt;Examples of Integer and Real Literals&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 17. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/Numericliteralscannotcontaindollarsignsorcommasbuttheycanbewritteninscientificnotation.htm&amp;quot;&amp;gt;Numeric literals cannot contain dollar signs or commas, but they can be written in scientific notation&amp;lt;/a&amp;gt;&lt;br /&gt;
24. 1. 18. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0480__PL-SQL-Programming/CharacterandstringliteralsintheOracleworldareenclosedbysinglequotes.htm&amp;quot;&amp;gt;Character and string literals in the Oracle world are enclosed by single quotes&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== There are some restrictions on the declaration of variables:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;There is no forward declaration.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Multiple declarations are supported in PL/SQL, as shown here:&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;
SQL&amp;gt; declare&lt;br /&gt;
  2      --v1, v2 NUMBER; -- INVALID&lt;br /&gt;
  3      -- VALID&lt;br /&gt;
  4      v1 NUMBER;&lt;br /&gt;
  5      v2 NUMBER;&lt;br /&gt;
  6  begin&lt;br /&gt;
  7      NULL;&lt;br /&gt;
  8  end;&lt;br /&gt;
  9  /&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;
== Writing a simple program==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The simplest kind of PL/SQL code is called an anonymous block.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;An anonymous block is a block of code that has its own DECLARE/BEGIN/END structure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Anonymous blocks can either stand on their own (as shown here) or they can sit within any other PL/SQL program.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The general syntax for an anonymous block:&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;
declare&lt;br /&gt;
    ...&lt;br /&gt;
     &amp;lt;Declaration part&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
begin&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;Procedural part&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
exception&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;Exception handler&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;The declaration section defines all variables, cursors, subprograms, and other elements to be used in the code.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The declaration section is optional.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The procedural section contains the main body of the routine.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The procedural section starts with the begin keyword and ends with the exception keyword or the end keyword if you have no exception section.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The procedural section is the only mandatory part of the code.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;You must have at least one line of executable code in the procedural section.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;You can use the NULL command to indicate that nothing should be executed.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The exception section is also optional.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The exception section allows the program to intercept and process exceptions.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>