了解Oracle事务处理

egmofgnx  于 2023-05-06  发布在  Oracle
关注(0)|答案(1)|浏览(210)

我正试图搞清楚甲骨文的交易,但我得到了一些令人困惑的信息。
我习惯于使用DBMS,在DBMS中,您可以使用以下内容创建事务:

--  do something

START TRANSACTION;
--  do things
--  do more things
COMMIT;

如果出现错误,则事务将回滚。但是在事务提交之前会发生什么。
如果我只是想测试的东西,我应该能够做到这一点:

--  do something

START TRANSACTION;
--  do things
--  do more things
ROLLBACK;

只有第一部分应该被执行。
我读到Oracle没有特定的START TRANSACTION语句。在这种情况下,我如何控制提交的内容和回滚的内容?

wwtsj6pe

wwtsj6pe1#

您可以使用SAVEPOINT

-- do first thing

SAVEPOINT your_savepoint_name;

-- do second thing

ROLLBACK TO SAVEPOINT your_savepoint_name;

-- do third thing

COMMIT;

这将:
1.隐式地开始事务;
1.做第一件事
1.创建一个保存点,然后执行第二项操作,然后回滚到保存点,恢复第二项操作所做的更改(在保存点之前保留第一项操作的更改);和/或
1.执行第三件事并提交事务(包含第一件和第三件事的更改)。

相关问题