• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar

Coder Tutorial

  • Home
  • HTML
  • CSS
  • PHP
  • SQL
  • MySQL
  • JS
  • PL/SQL
  • Python
  • Java
  • Oracle

Oracle Transaction Statements

Oracle Transaction Statements

A transaction is a series of one or more SQL statements that Oracle Database treats as a unit.
A transaction is an atomic unit. A transaction ends when it is committed or rolled back.

The transaction control statements are:

SAVEPOINT – is a point in a transaction to which you can later roll back.
A transaction can have multiple savepoints. Savepoints are optional.
Oracle Database rolls back only the statements run after the savepoint.

COMMIT – ends the current transaction, makes its changes permanent, erases its savepoints, and releases its locks.

ROLLBACK – rolls back either the entire current transaction or only the changes made after the specified savepoint.

Rollback to Savepoint

declare
v_name varchar2(255);
begin

update CUSTOMERS
set name = 'Customer_A'
where id=1 
AND name='Customer_Abc';

DBMS_OUTPUT.put_line('upd_1: '||SQL%ROWCOUNT);

SAVEPOINT update_1;

Insert into CUSTOMERS (ID,NAME,ADDRESS) 
values (4,'Customer_D','Address 4D');

DBMS_OUTPUT.put_line('upd_2: '||SQL%ROWCOUNT);

SAVEPOINT update_2;

select name into v_name from CUSTOMERS where id=5;

COMMIT;
exception 
	when no_data_found then
  DBMS_OUTPUT.put_line('ROLLBACK TO SAVEPOINT update_1');
	ROLLBACK TO SAVEPOINT update_1;
end;

Rollback

declare
v_name varchar2(255);
begin

update CUSTOMERS
set name = 'Customer_A'
where id=1 
AND name='Customer_Abc';

DBMS_OUTPUT.put_line('upd_1: '||SQL%ROWCOUNT);

Insert into CUSTOMERS (ID,NAME,ADDRESS) 
values (4,'Customer_D','Address 4D');

DBMS_OUTPUT.put_line('upd_2: '||SQL%ROWCOUNT);

select name into v_name from CUSTOMERS where id=5;

COMMIT;
exception 
	when no_data_found then
  DBMS_OUTPUT.put_line('ROLLBACK');
	ROLLBACK ;
end;

Commit

declare
v_name varchar2(255);
begin

Insert into CUSTOMERS (ID,NAME,ADDRESS) 
values (4,'Customer_D','Address 4D');

DBMS_OUTPUT.put_line('upd_2: '||SQL%ROWCOUNT);

select name into v_name from CUSTOMERS where id=4;

DBMS_OUTPUT.put_line('Customer name: '||v_name);

COMMIT;
end;

Filed Under: Oracle

Primary Sidebar

Tutorials

  • HTML Tutorial
  • CSS Tutorial
  • PHP Tutorial
  • SQL Tutorial
  • MySQL Tutorial
  • JavaScript Tutorial
  • Python Tutorial
  • PL/SQL Tutorial
  • Java Tutorial
  • SQLPlus Tutorial
  • Oracle Tutorial
  • PostgreSQL Tutorial
  • Ruby Tutorial

Secondary Sidebar

    • Oracle Tutorial
    • Oracle Create Table
    • Oracle Insert
    • Oracle Update
    • Oracle Delete
    • Oracle Anonymous Block
    • Oracle Data Types
    • Oracle Conditional Statements
    • Oracle Transaction Statements
    • Oracle Loop Statements
    • Oracle Cursors
    • Oracle Create Procedure
    • Oracle Create Function
    • Oracle Create Package
    • Oracle Create View
    • Oracle Create Trigger
    • Oracle Exception

Copyright  2018 - 2021 Coder Tutorial

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Cookie settingsACCEPT
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Non-necessary

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.