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

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/PL_SQL_Programming/Update&amp;diff=4033&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_Programming/Update&amp;diff=4033&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_Programming/Update&amp;diff=4034&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_Programming/Update&amp;diff=4034&amp;oldid=prev"/>
				<updated>2010-05-26T10:08:26Z</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;== How DML works with PL/SQL==&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 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;
&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; BEGIN&lt;br /&gt;
  2     UPDATE employee&lt;br /&gt;
  3     SET salary = 0;&lt;br /&gt;
  4  END;&lt;br /&gt;
  5  /&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;
  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          0 Toronto    Programmer&lt;br /&gt;
02   Alison               Mathews              21-MAR-76 21-FEB-86          0 Vancouver  Tester&lt;br /&gt;
03   James                Smith                12-DEC-78 15-MAR-90          0 Vancouver  Tester&lt;br /&gt;
04   Celia                Rice                 24-OCT-82 21-APR-99          0 Vancouver  Manager&lt;br /&gt;
05   Robert               Black                15-JAN-84 08-AUG-98          0 Vancouver  Tester&lt;br /&gt;
06   Linda                Green                30-JUL-87 04-JAN-96          0 New York   Tester&lt;br /&gt;
07   David                Larry                31-DEC-90 12-FEB-98          0 New York   Manager&lt;br /&gt;
08   James                Cat                  17-SEP-96 15-APR-02          0 Vancouver  Tester&lt;br /&gt;
8 rows selected.&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;
== Procedure for adjust salary==&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 employee&lt;br /&gt;
  2  (employee_id         NUMBER(7),&lt;br /&gt;
  3   last_name           VARCHAR2(25),&lt;br /&gt;
  4   first_name          VARCHAR2(25),&lt;br /&gt;
  5   userid              VARCHAR2(8),&lt;br /&gt;
  6   start_date          DATE,&lt;br /&gt;
  7   comments            VARCHAR2(255),&lt;br /&gt;
  8   manager_id          NUMBER(7),&lt;br /&gt;
  9   title               VARCHAR2(25),&lt;br /&gt;
 10   department_id       NUMBER(7),&lt;br /&gt;
 11   salary              NUMBER(11, 2),&lt;br /&gt;
 12   commission_pct      NUMBER(4, 2)&lt;br /&gt;
 13  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (1, &amp;quot;V&amp;quot;, &amp;quot;Ben&amp;quot;, &amp;quot;cv&amp;quot;,to_date(&amp;quot;03-MAR-90 8:30&amp;quot;, &amp;quot;dd-mon-yy hh24:mi&amp;quot;),NULL, NULL, &amp;quot;PRESIDENT&amp;quot;, 50, 2500, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (2, &amp;quot;N&amp;quot;, &amp;quot;Haidy&amp;quot;, &amp;quot;ln&amp;quot;, &amp;quot;08-MAR-90&amp;quot;, NULL,1, &amp;quot;VP, OPERATIONS&amp;quot;, 41, 1450, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (3, &amp;quot;N&amp;quot;, &amp;quot;Molly&amp;quot;, &amp;quot;mn&amp;quot;, &amp;quot;17-JUN-91&amp;quot;,NULL, 1, &amp;quot;VP, SALES&amp;quot;, 31, 1400, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (4, &amp;quot;S&amp;quot;, &amp;quot;Mark&amp;quot;, &amp;quot;mq&amp;quot;, &amp;quot;07-APR-90&amp;quot;,NULL, 1, &amp;quot;VP, FINANCE&amp;quot;, 10, 1450, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (5, &amp;quot;R&amp;quot;, &amp;quot;AUDRY&amp;quot;, &amp;quot;ar&amp;quot;, &amp;quot;04-MAR-90&amp;quot;,NULL, 1, &amp;quot;VP, ADMINISTRATION&amp;quot;, 50, 1550, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (6, &amp;quot;U&amp;quot;, &amp;quot;MOLLY&amp;quot;, &amp;quot;mu&amp;quot;, &amp;quot;18-JAN-91&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1200, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (7, &amp;quot;M&amp;quot;, &amp;quot;ROBERTA&amp;quot;, &amp;quot;rm&amp;quot;, &amp;quot;14-MAY-90&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1250, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (8, &amp;quot;B&amp;quot;, &amp;quot;BEN&amp;quot;, &amp;quot;ry&amp;quot;, &amp;quot;07-APR-90&amp;quot;, NULL, 2,&amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1100, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (9, &amp;quot;C&amp;quot;, &amp;quot;Jane&amp;quot;, &amp;quot;ac&amp;quot;, &amp;quot;09-FEB-92&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1300, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (10, &amp;quot;H&amp;quot;, &amp;quot;Mart&amp;quot;, &amp;quot;mh&amp;quot;, &amp;quot;27-FEB-91&amp;quot;, NULL, 2,&amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1307, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE adjust_salary&lt;br /&gt;
  2     (p_percent_increase_num NUMBER) AS&lt;br /&gt;
  3     lv_percent_input_num NUMBER;&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5     lv_percent_input_num := p_percent_increase_num;&lt;br /&gt;
  6     DBMS_OUTPUT.PUT_LINE(&amp;quot;Salaries Increased by: &amp;quot; || p_percent_increase_num);&lt;br /&gt;
  7     lv_percent_input_num := 1 + lv_percent_input_num/100;&lt;br /&gt;
  8     DBMS_OUTPUT.PUT_LINE(&amp;quot;Multiplier: &amp;quot; || lv_percent_input_num);&lt;br /&gt;
  9     UPDATE employee&lt;br /&gt;
 10     SET    salary = NVL(salary,0) * lv_percent_input_num;&lt;br /&gt;
 11     COMMIT;&lt;br /&gt;
 12  END;&lt;br /&gt;
 13  /&lt;br /&gt;
Procedure created.&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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Update returning into==&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  (employee_id         NUMBER(7),&lt;br /&gt;
  3   last_name           VARCHAR2(25),&lt;br /&gt;
  4   first_name          VARCHAR2(25),&lt;br /&gt;
  5   userid              VARCHAR2(8),&lt;br /&gt;
  6   start_date          DATE,&lt;br /&gt;
  7   comments            VARCHAR2(255),&lt;br /&gt;
  8   manager_id          NUMBER(7),&lt;br /&gt;
  9   title               VARCHAR2(25),&lt;br /&gt;
 10   department_id       NUMBER(7),&lt;br /&gt;
 11   salary              NUMBER(11, 2),&lt;br /&gt;
 12   commission_pct      NUMBER(4, 2)&lt;br /&gt;
 13  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (1, &amp;quot;V&amp;quot;, &amp;quot;Ben&amp;quot;, &amp;quot;cv&amp;quot;,to_date(&amp;quot;03-MAR-90 8:30&amp;quot;, &amp;quot;dd-mon-yy hh24:mi&amp;quot;),NULL, NULL, &amp;quot;PRESIDENT&amp;quot;, 50, 2500, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (2, &amp;quot;N&amp;quot;, &amp;quot;Haidy&amp;quot;, &amp;quot;ln&amp;quot;, &amp;quot;08-MAR-90&amp;quot;, NULL,1, &amp;quot;VP, OPERATIONS&amp;quot;, 41, 1450, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (3, &amp;quot;N&amp;quot;, &amp;quot;Molly&amp;quot;, &amp;quot;mn&amp;quot;, &amp;quot;17-JUN-91&amp;quot;,NULL, 1, &amp;quot;VP, SALES&amp;quot;, 31, 1400, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (4, &amp;quot;S&amp;quot;, &amp;quot;Mark&amp;quot;, &amp;quot;mq&amp;quot;, &amp;quot;07-APR-90&amp;quot;,NULL, 1, &amp;quot;VP, FINANCE&amp;quot;, 10, 1450, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (5, &amp;quot;R&amp;quot;, &amp;quot;AUDRY&amp;quot;, &amp;quot;ar&amp;quot;, &amp;quot;04-MAR-90&amp;quot;,NULL, 1, &amp;quot;VP, ADMINISTRATION&amp;quot;, 50, 1550, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (6, &amp;quot;U&amp;quot;, &amp;quot;MOLLY&amp;quot;, &amp;quot;mu&amp;quot;, &amp;quot;18-JAN-91&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1200, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (7, &amp;quot;M&amp;quot;, &amp;quot;ROBERTA&amp;quot;, &amp;quot;rm&amp;quot;, &amp;quot;14-MAY-90&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1250, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (8, &amp;quot;B&amp;quot;, &amp;quot;BEN&amp;quot;, &amp;quot;ry&amp;quot;, &amp;quot;07-APR-90&amp;quot;, NULL, 2,&amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1100, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (9, &amp;quot;C&amp;quot;, &amp;quot;Jane&amp;quot;, &amp;quot;ac&amp;quot;, &amp;quot;09-FEB-92&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1300, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (10, &amp;quot;H&amp;quot;, &amp;quot;Mart&amp;quot;, &amp;quot;mh&amp;quot;, &amp;quot;27-FEB-91&amp;quot;, NULL, 2,&amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1307, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2     lv_new_salary_num employee.salary%TYPE;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4     UPDATE employee&lt;br /&gt;
  5     SET    salary = NVL(salary, 0) * 1.2&lt;br /&gt;
  6     WHERE  employee_id = 1&lt;br /&gt;
  7     RETURNING salary INTO lv_new_salary_num;&lt;br /&gt;
  8     DBMS_OUTPUT.PUT_LINE(&amp;quot;New Salary: &amp;quot; || lv_new_salary_num);&lt;br /&gt;
  9  END;&lt;br /&gt;
 10  /&lt;br /&gt;
New Salary: 3000&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
== Update salary with stored 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; CREATE TABLE EMP(&lt;br /&gt;
  2      EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  3      ENAME VARCHAR2(10),&lt;br /&gt;
  4      JOB VARCHAR2(9),&lt;br /&gt;
  5      MGR NUMBER(4),&lt;br /&gt;
  6      HIREDATE DATE,&lt;br /&gt;
  7      SAL NUMBER(7, 2),&lt;br /&gt;
  8      COMM NUMBER(7, 2),&lt;br /&gt;
  9      DEPTNO NUMBER(2)&lt;br /&gt;
 10  );&lt;br /&gt;
Table created.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(2, &amp;quot;Jack&amp;quot;, &amp;quot;Tester&amp;quot;, 6,TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(3, &amp;quot;Wil&amp;quot;, &amp;quot;Tester&amp;quot;, 6,TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(4, &amp;quot;Jane&amp;quot;, &amp;quot;Designer&amp;quot;, 9,TO_DATE(&amp;quot;2-APR-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(5, &amp;quot;Mary&amp;quot;, &amp;quot;Tester&amp;quot;, 6,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(6, &amp;quot;Black&amp;quot;, &amp;quot;Designer&amp;quot;, 9,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7, &amp;quot;Chris&amp;quot;, &amp;quot;Designer&amp;quot;, 9,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(8, &amp;quot;Smart&amp;quot;, &amp;quot;Helper&amp;quot;, 4,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(9, &amp;quot;Peter&amp;quot;, &amp;quot;Manager&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(10, &amp;quot;Take&amp;quot;, &amp;quot;Tester&amp;quot;, 6,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(13, &amp;quot;Fake&amp;quot;, &amp;quot;Helper&amp;quot;, 4,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE update_sal(id in number,p_sal in number)&lt;br /&gt;
  2  authid current_user&lt;br /&gt;
  3  AS&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5      update EMP set sal = p_sal where empno = id;&lt;br /&gt;
  6  END;&lt;br /&gt;
  7  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop procedure update_sal;&lt;br /&gt;
Procedure dropped.&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== UPDATE statement with variable==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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; DECLARE&lt;br /&gt;
  2    v_city            employee.city%TYPE;&lt;br /&gt;
  3    v_salaryIncrease  NUMBER := 3;&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    v_city := &amp;quot;Vancouver&amp;quot;;&lt;br /&gt;
  6    UPDATE employee&lt;br /&gt;
  7      SET salary = salary + v_salaryIncrease&lt;br /&gt;
  8      WHERE city = V_city;&lt;br /&gt;
  9  END;&lt;br /&gt;
 10  /&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;
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    6664.78 Vancouver  Tester&lt;br /&gt;
03   James                Smith                12-DEC-78 15-MAR-90    6547.78 Vancouver  Tester&lt;br /&gt;
04   Celia                Rice                 24-OCT-82 21-APR-99    2347.78 Vancouver  Manager&lt;br /&gt;
05   Robert               Black                15-JAN-84 08-AUG-98    2337.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    1235.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; -- 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;
== Update table and return if success==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE EMP(&lt;br /&gt;
  2      EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  3      ENAME VARCHAR2(10),&lt;br /&gt;
  4      JOB VARCHAR2(9),&lt;br /&gt;
  5      MGR NUMBER(4),&lt;br /&gt;
  6      HIREDATE DATE,&lt;br /&gt;
  7      SAL NUMBER(7, 2),&lt;br /&gt;
  8      COMM NUMBER(7, 2),&lt;br /&gt;
  9      DEPTNO NUMBER(2)&lt;br /&gt;
 10  );&lt;br /&gt;
Table created.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(2, &amp;quot;Jack&amp;quot;, &amp;quot;Tester&amp;quot;, 6,TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(3, &amp;quot;Wil&amp;quot;, &amp;quot;Tester&amp;quot;, 6,TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(4, &amp;quot;Jane&amp;quot;, &amp;quot;Designer&amp;quot;, 9,TO_DATE(&amp;quot;2-APR-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(5, &amp;quot;Mary&amp;quot;, &amp;quot;Tester&amp;quot;, 6,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7, &amp;quot;Chris&amp;quot;, &amp;quot;Designer&amp;quot;, 9,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(8, &amp;quot;Smart&amp;quot;, &amp;quot;Helper&amp;quot;, 4,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(9, &amp;quot;Peter&amp;quot;, &amp;quot;Manager&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(10, &amp;quot;Take&amp;quot;, &amp;quot;Tester&amp;quot;, 6,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(13, &amp;quot;Fake&amp;quot;, &amp;quot;Helper&amp;quot;, 4,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from emp;&lt;br /&gt;
Enter...&lt;br /&gt;
     2 Jack       Tester         6 20-02-1981   1600    300     30&lt;br /&gt;
     3 Wil        Tester         6 22-02-1981   1250    500     30&lt;br /&gt;
     4 Jane       Designer       9 02-04-1981   2975  [N/A]     20&lt;br /&gt;
     5 Mary       Tester         6 28-09-1981   1250   1400     30&lt;br /&gt;
     7 Chris      Designer       9 09-06-1981   2450  [N/A]     10&lt;br /&gt;
     8 Smart      Helper         4 09-12-1982   3000  [N/A]     20&lt;br /&gt;
     9 Peter      Manager    [N/A] 17-11-1981   5000  [N/A]     10&lt;br /&gt;
    10 Take       Tester         6 08-09-1981   1500      0     30&lt;br /&gt;
    13 Fake       Helper         4 03-12-1981   3000  [N/A]     20&lt;br /&gt;
9 rows selected.&lt;br /&gt;
SQL&amp;gt; create or replace procedure UPDATE_EMP(id number, val number,isSuccess out boolean) is&lt;br /&gt;
  2   begin&lt;br /&gt;
  3   if val = 0 then&lt;br /&gt;
  4       isSuccess := false;&lt;br /&gt;
  5   else&lt;br /&gt;
  6      update EMP set SAL = SAL / val where empno = id;&lt;br /&gt;
  7   isSuccess := true;&lt;br /&gt;
  8   end if;&lt;br /&gt;
  9  end;&lt;br /&gt;
 10  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&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;
== Update value and return affected row count==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE FUNCTION updNVal (&lt;br /&gt;
  2     tab IN VARCHAR2,&lt;br /&gt;
  3     col IN VARCHAR2,&lt;br /&gt;
  4     val IN NUMBER,&lt;br /&gt;
  5     whr IN VARCHAR2 := NULL,&lt;br /&gt;
  6     sch IN VARCHAR2 := NULL)&lt;br /&gt;
  7     RETURN INTEGER&lt;br /&gt;
  8  IS&lt;br /&gt;
  9  BEGIN&lt;br /&gt;
 10     EXECUTE IMMEDIATE&lt;br /&gt;
 11        &amp;quot;UPDATE &amp;quot; || NVL (sch, USER) || &amp;quot;.&amp;quot; || tab ||&lt;br /&gt;
 12        &amp;quot;   SET &amp;quot; || col || &amp;quot; = :the_value&lt;br /&gt;
 13          WHERE &amp;quot; || NVL (whr, &amp;quot;1=1&amp;quot;)&lt;br /&gt;
 14       USING val;&lt;br /&gt;
 15     RETURN SQL%ROWCOUNT;&lt;br /&gt;
 16  END;&lt;br /&gt;
 17  /&lt;br /&gt;
Function created.&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;
== Use cursor variable in update statement==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employee&lt;br /&gt;
  2  (employee_id         NUMBER(7),&lt;br /&gt;
  3   last_name           VARCHAR2(25),&lt;br /&gt;
  4   first_name          VARCHAR2(25),&lt;br /&gt;
  5   userid              VARCHAR2(8),&lt;br /&gt;
  6   start_date          DATE,&lt;br /&gt;
  7   comments            VARCHAR2(255),&lt;br /&gt;
  8   manager_id          NUMBER(7),&lt;br /&gt;
  9   title               VARCHAR2(25),&lt;br /&gt;
 10   department_id       NUMBER(7),&lt;br /&gt;
 11   salary              NUMBER(11, 2),&lt;br /&gt;
 12   commission_pct      NUMBER(4, 2)&lt;br /&gt;
 13  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (1, &amp;quot;V&amp;quot;, &amp;quot;Ben&amp;quot;, &amp;quot;cv&amp;quot;,to_date(&amp;quot;03-MAR-90 8:30&amp;quot;, &amp;quot;dd-mon-yy hh24:mi&amp;quot;),NULL, NULL, &amp;quot;PRESIDENT&amp;quot;, 50, 2500, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (2, &amp;quot;N&amp;quot;, &amp;quot;Haidy&amp;quot;, &amp;quot;ln&amp;quot;, &amp;quot;08-MAR-90&amp;quot;, NULL,1, &amp;quot;VP, OPERATIONS&amp;quot;, 41, 1450, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (3, &amp;quot;N&amp;quot;, &amp;quot;Molly&amp;quot;, &amp;quot;mn&amp;quot;, &amp;quot;17-JUN-91&amp;quot;,NULL, 1, &amp;quot;VP, SALES&amp;quot;, 31, 1400, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (4, &amp;quot;S&amp;quot;, &amp;quot;Mark&amp;quot;, &amp;quot;mq&amp;quot;, &amp;quot;07-APR-90&amp;quot;,NULL, 1, &amp;quot;VP, FINANCE&amp;quot;, 10, 1450, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (5, &amp;quot;R&amp;quot;, &amp;quot;AUDRY&amp;quot;, &amp;quot;ar&amp;quot;, &amp;quot;04-MAR-90&amp;quot;,NULL, 1, &amp;quot;VP, ADMINISTRATION&amp;quot;, 50, 1550, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (6, &amp;quot;U&amp;quot;, &amp;quot;MOLLY&amp;quot;, &amp;quot;mu&amp;quot;, &amp;quot;18-JAN-91&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1200, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (7, &amp;quot;M&amp;quot;, &amp;quot;ROBERTA&amp;quot;, &amp;quot;rm&amp;quot;, &amp;quot;14-MAY-90&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1250, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (8, &amp;quot;B&amp;quot;, &amp;quot;BEN&amp;quot;, &amp;quot;ry&amp;quot;, &amp;quot;07-APR-90&amp;quot;, NULL, 2,&amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1100, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (9, &amp;quot;C&amp;quot;, &amp;quot;Jane&amp;quot;, &amp;quot;ac&amp;quot;, &amp;quot;09-FEB-92&amp;quot;,NULL, 2, &amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1300, NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (10, &amp;quot;H&amp;quot;, &amp;quot;Mart&amp;quot;, &amp;quot;mh&amp;quot;, &amp;quot;27-FEB-91&amp;quot;, NULL, 2,&amp;quot;WAREHOUSE MANAGER&amp;quot;, 41, 1307, NULL);&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; DECLARE&lt;br /&gt;
  2     CURSOR empCursor IS&lt;br /&gt;
  3        SELECT employee_id, department_id, NVL(salary,0) salary, ROWID&lt;br /&gt;
  4        FROM   employee;&lt;br /&gt;
  5     lv_record_num PLS_INTEGER DEFAULT 0;&lt;br /&gt;
  6  BEGIN&lt;br /&gt;
  7     FOR empRecord IN empCursor LOOP&lt;br /&gt;
  8        lv_record_num := lv_record_num + 1;&lt;br /&gt;
  9       IF empRecord.department_id = 10 OR&lt;br /&gt;
 10          empRecord.department_id = 41 THEN&lt;br /&gt;
 11           IF empRecord.salary &amp;gt; 1000 THEN&lt;br /&gt;
 12              empRecord.salary := empRecord.salary * 1.05;&lt;br /&gt;
 13           ELSE&lt;br /&gt;
 14              empRecord.salary := empRecord.salary * 1.10;&lt;br /&gt;
 15           END IF;&lt;br /&gt;
 16        ELSIF empRecord.department_id = 31 THEN&lt;br /&gt;
 17           IF empRecord.salary &amp;gt; 1400 THEN&lt;br /&gt;
 18              empRecord.salary := empRecord.salary * 1.05;&lt;br /&gt;
 19           ELSE&lt;br /&gt;
 20              empRecord.salary := empRecord.salary * 1.10;&lt;br /&gt;
 21           END IF;&lt;br /&gt;
 22        ELSIF empRecord.department_id = 50 THEN&lt;br /&gt;
 23           IF empRecord.salary &amp;gt; 2000 THEN&lt;br /&gt;
 24              empRecord.salary := empRecord.salary * 1.05;&lt;br /&gt;
 25           ELSE&lt;br /&gt;
 26              empRecord.salary := empRecord.salary * 1.10;&lt;br /&gt;
 27           END IF;&lt;br /&gt;
 28        END IF;&lt;br /&gt;
 29        UPDATE employee&lt;br /&gt;
 30        SET    salary = empRecord.salary&lt;br /&gt;
 31        WHERE  rowid  = empRecord.ROWID;&lt;br /&gt;
 32     DBMS_OUTPUT.PUT_LINE(&amp;quot; Employee: &amp;quot;   || empRecord.employee_id  ||&lt;br /&gt;
 33        &amp;quot; Department: &amp;quot; || empRecord.department_id ||&amp;quot; New Salary: &amp;quot; ||&lt;br /&gt;
 34        to_char(empRecord.salary, &amp;quot;$999,999.99&amp;quot;));&lt;br /&gt;
 35     END LOOP;&lt;br /&gt;
 36     COMMIT;&lt;br /&gt;
 37     DBMS_OUTPUT.PUT_LINE(&amp;quot;Update Process Complete. &amp;quot; ||&lt;br /&gt;
 38        lv_record_num || &amp;quot; Records Processed.&amp;quot;);&lt;br /&gt;
 39     EXCEPTION&lt;br /&gt;
 40        WHEN OTHERS THEN&lt;br /&gt;
 41           DBMS_OUTPUT.PUT_LINE(&amp;quot;Error on Record &amp;quot; || lv_record_num ||&lt;br /&gt;
 42           &amp;quot;: Update Process Aborted.&amp;quot;);&lt;br /&gt;
 43           ROLLBACK;&lt;br /&gt;
 44  END;&lt;br /&gt;
 45  /&lt;br /&gt;
Employee: 1 Department: 50 New Salary:    $2,625.00&lt;br /&gt;
Employee: 2 Department: 41 New Salary:    $1,522.50&lt;br /&gt;
Employee: 3 Department: 31 New Salary:    $1,540.00&lt;br /&gt;
Employee: 4 Department: 10 New Salary:    $1,522.50&lt;br /&gt;
Employee: 5 Department: 50 New Salary:    $1,705.00&lt;br /&gt;
Employee: 6 Department: 41 New Salary:    $1,260.00&lt;br /&gt;
Employee: 7 Department: 41 New Salary:    $1,312.50&lt;br /&gt;
Employee: 8 Department: 41 New Salary:    $1,155.00&lt;br /&gt;
Employee: 9 Department: 41 New Salary:    $1,365.00&lt;br /&gt;
Employee: 10 Department: 41 New Salary:    $1,372.35&lt;br /&gt;
Update Process Complete. 10 Records Processed.&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee;&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;
== Use update statement in stored 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; CREATE TABLE ord&lt;br /&gt;
  2  (order_id      NUMBER(7),&lt;br /&gt;
  3   customer_id   NUMBER(7),&lt;br /&gt;
  4   date_ordered  DATE,&lt;br /&gt;
  5   date_shipped  DATE,&lt;br /&gt;
  6   sales_rep_id  NUMBER(7),&lt;br /&gt;
  7   total         NUMBER(11, 2),&lt;br /&gt;
  8   payment_type  VARCHAR2(6),&lt;br /&gt;
  9   order_filled  VARCHAR2(1)&lt;br /&gt;
 10  );&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 ord VALUES (100, 204, &amp;quot;31-AUG-92&amp;quot;, &amp;quot;10-SEP-92&amp;quot;, 11, 601100, &amp;quot;CREDIT&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (101, 205, &amp;quot;31-AUG-92&amp;quot;, &amp;quot;15-SEP-92&amp;quot;, 14, 8056.6, &amp;quot;CREDIT&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (102, 206, &amp;quot;01-SEP-92&amp;quot;, &amp;quot;08-SEP-92&amp;quot;, 15, 8335, &amp;quot;CREDIT&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (103, 208, &amp;quot;02-SEP-92&amp;quot;, &amp;quot;22-SEP-92&amp;quot;, 15, 377, &amp;quot;CASH&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (104, 208, &amp;quot;03-SEP-92&amp;quot;, &amp;quot;23-SEP-92&amp;quot;, 15, 32430, &amp;quot;CREDIT&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (105, 209, &amp;quot;04-SEP-92&amp;quot;, &amp;quot;18-SEP-92&amp;quot;, 11, 2722.24, &amp;quot;CREDIT&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (106, 210, &amp;quot;07-SEP-92&amp;quot;, &amp;quot;15-SEP-92&amp;quot;, 12, 15634, &amp;quot;CREDIT&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (107, 211, &amp;quot;07-SEP-92&amp;quot;, &amp;quot;21-SEP-92&amp;quot;, 15, 142171, &amp;quot;CREDIT&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (108, 212, &amp;quot;07-SEP-92&amp;quot;, &amp;quot;10-SEP-92&amp;quot;, 13, 149570, &amp;quot;CREDIT&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (109, 213, &amp;quot;08-SEP-92&amp;quot;, &amp;quot;28-SEP-92&amp;quot;, 11, 1020935, &amp;quot;CREDIT&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (110, 214, &amp;quot;09-SEP-92&amp;quot;, &amp;quot;21-SEP-92&amp;quot;, 11, 1539.13, &amp;quot;CASH&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (111, 204, &amp;quot;09-SEP-92&amp;quot;, &amp;quot;21-SEP-92&amp;quot;, 11, 2770, &amp;quot;CASH&amp;quot;, &amp;quot;Y&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO ord VALUES (112, 210, &amp;quot;31-AUG-92&amp;quot;, &amp;quot;10-SEP-92&amp;quot;, 12, 550, &amp;quot;CREDIT&amp;quot;, &amp;quot;Y&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; CREATE OR REPLACE PROCEDURE reset_ship_dates (date_shipped IN DATE) IS&lt;br /&gt;
  2  BEGIN&lt;br /&gt;
  3     UPDATE ord&lt;br /&gt;
  4     SET    date_shipped = NULL&lt;br /&gt;
  5     WHERE  date_shipped = date_shipped;&lt;br /&gt;
  6     COMMIT;&lt;br /&gt;
  7  END reset_ship_dates;&lt;br /&gt;
  8  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table ord;&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>