gpt4 book ai didi

oracle - oracle程序中如何使用保存点

转载 作者:行者123 更新时间:2023-12-05 00:25:52 25 4
gpt4 key购买 nike

我在一个过程中有多个更新和插入语句。

请引用以下示例:

程序示例

- 代码

更新 1

插入 1

更新 2

更新3——假设发生异常

现在我想回滚到第一个更新语句之前意味着没有更新或插入影响。

最佳答案

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;
/

关于oracle - oracle程序中如何使用保存点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com