首页 > Linux操作系统 > Linux操作系统 > Oracle自治事务介绍
首先建立一个表Create table Msg (Msg varchar(50)) 用于存储消息
建立自治事务下的插入过程
Create or Replace procedure AutoNomouse_Insert as
pragma autonomouse_transcation;
begin
insert into Msg values('AutoNomouse Insert');
commit;
end;
注:pragma autonomouse_transcation 表示在这个过程中启动自治事务
建立正常情况下的插入过程
Create or Replace Procedure NonAutoNomouse_Insert as
begin
insert into Msg Values('NonAutonomouse Insert');
commit;
end;
下面在一个匿名块中分别调用上面的两个过程
begin
insert into Msg Values('This Main Info');
NonAutoNomouse_Insert;
rollback;
end
select * from Msg
Msg
__________________________________________________
This Main Info
NonAutonomouse Insert
可以看到正个事务在过程NonAutoNomouse_Insert中被提交了Rollback并不起做用。
下面调用自治事务的过程如下:
begin
insert into Msg Values('This Main Info');
AutoNomouse_Insert;
rollback;
end
select * from Msg
MSG
--------------------------------------------------------------------------
AutoNomouse Insert
可以看到在自治事务中只提交了自治事务内的更改,所以Rollback回滚了自治事务外的更改。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8102208/viewspace-515889/ ,如需转载,请注明出处,否则将追究法律责任。