Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да използвате точки за запазване в процедура на 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;


======редактиране ==========

Работещ пример: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. Как да намалите времето за изпълнение на заявка за таблица с огромни данни

  2. java.sql.SQLException:- ORA-01000:максималният отворен курсор е превишен

  3. Вмъкване на стойност по подразбиране, когато е вмъкната нула

  4. ORA-00907 при динамично създаване на изглед в PL/SQL и използване на CLOB

  5. Тип данни на Oracle Clob