WEB开发网
开发学院数据库Oracle Oracle-自治事务 阅读

Oracle-自治事务

 2012-07-17 14:10:48 来源:WEB开发网   
核心提示:Commit completeSQL> select * from msg;MSG--This Main InfoNonAutonomouse InsertNonAutonomouse InsertSQL> commit;Commit completeSQL> select * from msg;MS

Commit complete

SQL> select * from msg;

MSG
--------------------------------------------------
This Main Info
NonAutonomouse Insert
NonAutonomouse Insert

SQL> commit;

Commit complete

SQL> select * from msg;

MSG
--------------------------------------------------
This Main Info
NonAutonomouse Insert
NonAutonomouse Insert
因为这里一个新的SESSION 所以是没有意义的事务控制语句。

SQL> deletemsg;

3 rows deleted

SQL> commit;

Commit complete

SQL> select * from msg;

MSG
--------------------------------------------------
可以看到这里是正常的提交;

下面看一下自制事务:
SQL> begin
2
3 insert into Msg Values('This Main Info');
4
5 AutoNomouse_Insert;
6
7 rollback;
8
9 end
10
11 ;
12 /

PL/SQL procedure successfully completed

SQL> select * from msg;

MSG
--------------------------------------------------
AutoNomouse Insert

我们看到是一行数据,显然第一条SQL INSERT 是被ROLLBACK,证明自制事务是一个独立于主程序的事务,
他不会对主事务的控制产生影响。另外在分布式环境中我们经常会遇到 ORA-02064 ERROR,就是因为主事务
自己有事务控制语句,然而被调用的远程过程也有自己的事物控制语句,当然就会报错,我们将被调用的过程
声明为自制事务那就OK了。

上一页  1 2 

Tags:Oracle 自治 事务

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接