Oracle自治事务

一般在创建存储过程的时候都会加上:

PRAGMA AUTONOMOUS_TRANSACTION

使用场景:

1.在存储过程中执行多个操作时,可以使用自治事务来确保每个操作都能正确提交或回滚。

2.当存储过程需要执行长时间的操作时,可以使用自治事务来确保该操作不会被其他操作阻塞。

而不使用也许会导致以下问题:

1.操作失败:假如各个操作有数据依赖关系,不使用自治事务,当某个操作失败回滚,可能会导致其他操作也失败回滚。

2.数据不一致:有多个用户同时读写数据时,造成数据不一致的显示。

举例:

CREATE OR REPLACE PROCEDURE P_TEST(I_DATE VARCHAR2, 
                                          O_NAME  OUT VARCHAR2) IS
 PRAGMA AUTONOMOUS_TRANSACTION;

将存储过程执行中所有的操作放在一个独立的事务中进行,如果发生异常或错误,整个事务都将回滚,从而保证数据的一致性和完整性。

关于存储过程更多的使用请见:

快速入门到精通:一篇学会Oracle_一碗折耳根的博客-CSDN博客