<?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%2FTable%2FTransaction_Rollback_Commit</id>
		<title>Oracle PL/SQL/Table/Transaction Rollback Commit - История изменений</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%2FTable%2FTransaction_Rollback_Commit"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Table/Transaction_Rollback_Commit&amp;action=history"/>
		<updated>2026-05-24T03:06:48Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Table/Transaction_Rollback_Commit&amp;diff=1040&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/Table/Transaction_Rollback_Commit&amp;diff=1040&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL/Table/Transaction_Rollback_Commit&amp;diff=1041&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/Table/Transaction_Rollback_Commit&amp;diff=1041&amp;oldid=prev"/>
				<updated>2010-05-26T09:54:52Z</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;==alter rollback segment SEGMENT_NAME online==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt; alter rollback segment SEGMENT_NAME online;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; commit;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==atomicity: roll back and commit==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table t ( x number(1) );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; /&lt;br /&gt;
SQL&amp;gt;  insert into t values ( 1 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into t values ( 2 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; rollback;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt; insert into t values ( 1 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into t values ( 2 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; commit;&lt;br /&gt;
Commit complete.&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
         X&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
         2&lt;br /&gt;
SQL&amp;gt; /&lt;br /&gt;
         X&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
         2&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table t;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rollback a delete==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&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; delete from Employee where id = &amp;quot;01&amp;quot;;&lt;br /&gt;
1 row deleted.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select id, last_name from Employee where id = &amp;quot;01&amp;quot;;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; rollback;&lt;br /&gt;
Rollback complete.&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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rollback to savepoint in exception handler==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table myTable2 ( cnt int );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into myTable2 values ( 0 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table t ( x int check ( x&amp;gt;0 ) );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create trigger t_trigger before insert or delete on t for each row&lt;br /&gt;
  2  begin&lt;br /&gt;
  3     if ( inserting ) then&lt;br /&gt;
  4          update myTable2 set cnt = cnt +1;&lt;br /&gt;
  5     else&lt;br /&gt;
  6          update myTable2 set cnt = cnt -1;&lt;br /&gt;
  7     end if;&lt;br /&gt;
  8     dbms_output.put_line( &amp;quot;fired and updated &amp;quot;  || sql%rowcount || &amp;quot; rows&amp;quot; );&lt;br /&gt;
  9  end;&lt;br /&gt;
 10  /&lt;br /&gt;
Trigger created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace procedure p&lt;br /&gt;
  2  as&lt;br /&gt;
  3  begin&lt;br /&gt;
  4          insert into t values ( 1 );&lt;br /&gt;
  5          insert into t values (-1 );&lt;br /&gt;
  6  end;&lt;br /&gt;
  7  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt; select * from myTable2;&lt;br /&gt;
       CNT&lt;br /&gt;
----------&lt;br /&gt;
         0&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2          p;&lt;br /&gt;
  3  end;&lt;br /&gt;
  4  /&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
begin&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-02290: check constraint (sqle.SYS_C0010265) violated&lt;br /&gt;
ORA-06512: at &amp;quot;sqle.P&amp;quot;, line 5&lt;br /&gt;
ORA-06512: at line 2&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt; select * from myTable2;&lt;br /&gt;
       CNT&lt;br /&gt;
----------&lt;br /&gt;
         0&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2      p;&lt;br /&gt;
  3  exception&lt;br /&gt;
  4      when others then null;&lt;br /&gt;
  5  end;&lt;br /&gt;
  6  /&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
         X&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
SQL&amp;gt; select * from myTable2;&lt;br /&gt;
       CNT&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; rollback;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2      savepoint sp;&lt;br /&gt;
  3      p;&lt;br /&gt;
  4  exception&lt;br /&gt;
  5      when others then&lt;br /&gt;
  6          rollback to sp;&lt;br /&gt;
  7  end;&lt;br /&gt;
  8  /&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
fired and updated 1 rows&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt; select * from myTable2;&lt;br /&gt;
       CNT&lt;br /&gt;
----------&lt;br /&gt;
         0&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 t;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table myTable2;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SET TRANSACTION READ WRITE==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt; CREATE TABLE project (&lt;br /&gt;
  2    pro_id              NUMBER(4),&lt;br /&gt;
  3    pro_name            VARCHAR2(40),&lt;br /&gt;
  4    budget          NUMBER(9,2),&lt;br /&gt;
  5    CONSTRAINT project_pk   PRIMARY KEY (pro_id)&lt;br /&gt;
  6  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO project(pro_id, pro_name, budget)VALUES (1001, &amp;quot;A&amp;quot;,12345);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO project(pro_id, pro_name, budget)VALUES (1002, &amp;quot;ERP&amp;quot;,23456);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO project(pro_id, pro_name, budget)VALUES (1003, &amp;quot;SQL&amp;quot;,34567);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO project(pro_id, pro_name, budget)VALUES (1004, &amp;quot;CRM&amp;quot;,45678);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO project(pro_id, pro_name, budget)VALUES (1005, &amp;quot;VPN&amp;quot;,56789);&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 TABLE server_usage (&lt;br /&gt;
  2    pro_id                   NUMBER(4),&lt;br /&gt;
  3    emp_id                  NUMBER,&lt;br /&gt;
  4    time_log_date                DATE,&lt;br /&gt;
  5    hours_logged                 NUMBER(8,2),&lt;br /&gt;
  6    dollars_charged              NUMBER(8,2),&lt;br /&gt;
  7    CONSTRAINT server_usage_pk  PRIMARY KEY (pro_id, emp_id, time_log_date)&lt;br /&gt;
  8  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1001,101,to_date(&amp;quot;4-Apr-2004&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1123,222);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1002,102,to_date(&amp;quot;4-Apr-2005&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1124,223);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1003,103,to_date(&amp;quot;4-Apr-2006&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1125,224);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1004,104,to_date(&amp;quot;4-Apr-2007&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1126,225);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1005,105,to_date(&amp;quot;4-Apr-2008&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1127,226);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1001,106,to_date(&amp;quot;4-Apr-2009&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1128,227);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1002,107,to_date(&amp;quot;4-Apr-2010&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1129,228);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; SET ECHO ON&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; SET TRANSACTION READ WRITE;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; INSERT INTO project&lt;br /&gt;
  2     SELECT 2008, pro_name, budget FROM project&lt;br /&gt;
  3     WHERE pro_id = 1002;&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; UPDATE server_usage&lt;br /&gt;
  2  SET pro_id = 2008&lt;br /&gt;
  3  WHERE pro_id = 1002;&lt;br /&gt;
2 rows updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; ROLLBACK;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table project;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table server_usage;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==set transaction use rollback segment SEGMENT_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;
    &lt;br /&gt;
SQL&amp;gt; set transaction use rollback segment SEGMENT_NAME&lt;br /&gt;
  2  /&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==show autocommit==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set  autocommit on&lt;br /&gt;
SQL&amp;gt; show autocommit&lt;br /&gt;
autocommit IMMEDIATE&lt;br /&gt;
SQL&amp;gt; set  autocommit 42&lt;br /&gt;
SQL&amp;gt; show autocommit&lt;br /&gt;
AUTOCOMMIT ON for every 42 DML statements&lt;br /&gt;
SQL&amp;gt; set  autocommit off&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TRANSACTION CONTROL==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE purchase (&lt;br /&gt;
  2       product_name  VARCHAR2(25),&lt;br /&gt;
  3       quantity      NUMBER(4,2),&lt;br /&gt;
  4       purchase_date DATE,&lt;br /&gt;
  5       salesperson   VARCHAR2(3)&lt;br /&gt;
  6       );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO purchase VALUES (&amp;quot;Small Widget&amp;quot;, 1, &amp;quot;14-JUL-03&amp;quot;, &amp;quot;CA&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO purchase VALUES (&amp;quot;Medium Widget&amp;quot;, 75, &amp;quot;14-JUL-03&amp;quot;, &amp;quot;BB&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; SELECT * FROM purchase;&lt;br /&gt;
PRODUCT_NAME                QUANTITY PURCHASE_ SAL&lt;br /&gt;
------------------------- ---------- --------- ---&lt;br /&gt;
Small Widget                       1 14-JUL-03 CA&lt;br /&gt;
Medium Widget                     75 14-JUL-03 BB&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; ROLLBACK;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT * FROM purchase;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO purchase VALUES (&amp;quot;Small Widget&amp;quot;, 1, &amp;quot;14-JUL-03&amp;quot;, &amp;quot;CA&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; SAVEPOINT a;&lt;br /&gt;
Savepoint created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO purchase VALUES (&amp;quot;Medium Widget&amp;quot;, 75, &amp;quot;14-JUL-03&amp;quot;, &amp;quot;BB&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; SAVEPOINT sp_2;&lt;br /&gt;
Savepoint created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO purchase VALUES (&amp;quot;Product Number&amp;quot;, 2, &amp;quot;14-JUL-03&amp;quot;, &amp;quot;GA&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; SAVEPOINT third;&lt;br /&gt;
Savepoint created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO purchase VALUES (&amp;quot;Small Widget&amp;quot;, 8, &amp;quot;15-JUL-03&amp;quot;, &amp;quot;GA&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; SAVEPOINT final_sp;&lt;br /&gt;
Savepoint created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO purchase VALUES (&amp;quot;Medium Widget&amp;quot;, 20, &amp;quot;15-JUL-03&amp;quot;, &amp;quot;LB&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; SELECT * FROM purchase;&lt;br /&gt;
PRODUCT_NAME                QUANTITY PURCHASE_ SAL&lt;br /&gt;
------------------------- ---------- --------- ---&lt;br /&gt;
Small Widget                       1 14-JUL-03 CA&lt;br /&gt;
Medium Widget                     75 14-JUL-03 BB&lt;br /&gt;
Product Number                     2 14-JUL-03 GA&lt;br /&gt;
Small Widget                       8 15-JUL-03 GA&lt;br /&gt;
Medium Widget                     20 15-JUL-03 LB&lt;br /&gt;
SQL&amp;gt; ROLLBACK TO final_sp;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt; SELECT * FROM purchase;&lt;br /&gt;
PRODUCT_NAME                QUANTITY PURCHASE_ SAL&lt;br /&gt;
------------------------- ---------- --------- ---&lt;br /&gt;
Small Widget                       1 14-JUL-03 CA&lt;br /&gt;
Medium Widget                     75 14-JUL-03 BB&lt;br /&gt;
Product Number                     2 14-JUL-03 GA&lt;br /&gt;
Small Widget                       8 15-JUL-03 GA&lt;br /&gt;
SQL&amp;gt; ROLLBACK TO third;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt; SELECT * FROM purchase;&lt;br /&gt;
PRODUCT_NAME                QUANTITY PURCHASE_ SAL&lt;br /&gt;
------------------------- ---------- --------- ---&lt;br /&gt;
Small Widget                       1 14-JUL-03 CA&lt;br /&gt;
Medium Widget                     75 14-JUL-03 BB&lt;br /&gt;
Product Number                     2 14-JUL-03 GA&lt;br /&gt;
SQL&amp;gt; ROLLBACK TO sp_2;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt; SELECT * FROM purchase;&lt;br /&gt;
PRODUCT_NAME                QUANTITY PURCHASE_ SAL&lt;br /&gt;
------------------------- ---------- --------- ---&lt;br /&gt;
Small Widget                       1 14-JUL-03 CA&lt;br /&gt;
Medium Widget                     75 14-JUL-03 BB&lt;br /&gt;
SQL&amp;gt; ROLLBACK TO a;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt; SELECT * FROM purchase;&lt;br /&gt;
PRODUCT_NAME                QUANTITY PURCHASE_ SAL&lt;br /&gt;
------------------------- ---------- --------- ---&lt;br /&gt;
Small Widget                       1 14-JUL-03 CA&lt;br /&gt;
SQL&amp;gt; ROLLBACK;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt; SELECT * FROM purchase;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table purchase;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Transaction Rollback and commit==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- rollback and commit&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table t ( x number(1) );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into t values ( 1 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into t values ( 2 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; rollback;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt; insert into t values ( 1 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into t values ( 2 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; commit;&lt;br /&gt;
Commit complete.&lt;br /&gt;
SQL&amp;gt; select * from t;&lt;br /&gt;
         X&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
         2&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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Transactions and Error Handling==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE emp (&lt;br /&gt;
  2     empID INT NOT NULL PRIMARY KEY,&lt;br /&gt;
  3     Name      VARCHAR(50) NOT NULL);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (1,&amp;quot;Tom&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (2,&amp;quot;Jack&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (3,&amp;quot;Mary&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (4,&amp;quot;Bill&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (5,&amp;quot;Cat&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (6,&amp;quot;Victor&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2&lt;br /&gt;
  3     INSERT INTO emp (empID, Name) VALUES (101, &amp;quot;sqle&amp;quot;);&lt;br /&gt;
  4     INSERT INTO emp (empID, Name) VALUES (102, &amp;quot;Claire&amp;quot;);&lt;br /&gt;
  5&lt;br /&gt;
  6     SAVEPOINT BeforeAddingAnne;&lt;br /&gt;
  7     INSERT INTO emp (empID, Name) VALUES (103, &amp;quot;Anne&amp;quot;);&lt;br /&gt;
  8     ROLLBACK TO BeforeAddingAnne;&lt;br /&gt;
  9&lt;br /&gt;
 10     COMMIT;&lt;br /&gt;
 11&lt;br /&gt;
 12  EXCEPTION&lt;br /&gt;
 13     WHEN OTHERS&lt;br /&gt;
 14        THEN ROLLBACK;&lt;br /&gt;
 15  END;&lt;br /&gt;
 16  /&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 emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Transactions and Savepoints==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE emp (&lt;br /&gt;
  2     empID INT NOT NULL PRIMARY KEY,&lt;br /&gt;
  3     Name      VARCHAR(50) NOT NULL);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (1,&amp;quot;Tom&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (2,&amp;quot;Jack&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (3,&amp;quot;Mary&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (4,&amp;quot;Bill&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (5,&amp;quot;Cat&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID,Name) VALUES (6,&amp;quot;Victor&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SAVEPOINT BeforeAddingBademp;&lt;br /&gt;
Savepoint created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emp (empID, Name) VALUES (99, &amp;quot;Bad emp&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; ROLLBACK TO BeforeAddingBademp;&lt;br /&gt;
Rollback complete.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; COMMIT;&lt;br /&gt;
Commit complete.&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 emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>