Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách sử dụng các điểm lưu trong thủ tục 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;


======sửa ==========

Ví dụ làm việc: 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. Lỗi 1033 nhận được đăng nhập vào chế độ chờ

  2. Tạo bảng cơ sở dữ liệu trong thủ tục PL / SQL

  3. thêm tháng vào SQL ngày tháng

  4. Không thể chạy truy vấn chọn động lớn trong thủ tục được lưu trữ

  5. Lỗi câu lệnh Oracle MERGE (ORA-30926)