Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak używać punktów zapisu w procedurze oracle

BEGIN

  Savepoint do_update_1;

  Update 1;

  insert 1;

  Update 2;

  Update 3; --Suppose exception occurs

EXCEPTION
  WHEN some_exception THEN Rollback To do_update_1;
END;


======edytuj ===

Przykład roboczy:http://sqlfiddle.com/#! 4/b94a93/1

create table tttt(
  id int,
  val int
)
/

declare 
  x int := 0;
begin
  insert into tttt values( 1,1);
  insert into tttt values( 2,2);
  Savepoint do_update_1;

  insert into tttt values( 3,3);
  update tttt set val = 0 where id = 2;
  update tttt set val = 10 / val where id = 2;

exception
  when zero_divide then rollback to do_update_1;
end;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstawić wartość do zagnieżdżonej tabeli bez utraty danych w tej tabeli?

  2. Używasz sekwencji Oracle do wstawiania identyfikatora dziennika do 2 tabel z jdbc?

  3. Wymiana ciągu Oracle

  4. Moje statystyki Optymalizatora 11g Praca, Zakończ ze mną – Naprawiono

  5. Jak zdefiniować wyzwalacz ON COMMIT w Oracle?