sql >> Database teknologi >  >> RDS >> Oracle

Sådan bruges savepoints i oracle-proceduren

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;


======rediger ==========

Fungerende eksempel: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. Gemmer du HABTM med ekstra felter?

  2. CTE-sletning er ikke begået, før følgende udsagn er fuldført

  3. Vælg kolonne efter alias i MySQL

  4. Hvordan får man den aktuelle ikrafttrædelsesdato i Oracle?