您的位置:首页 > 数据库 > Oracle

Oracle的自治事务

2007-09-07 13:50 459 查看
关于自治事务和分布式事务的定义,请大家参考Oracle本身的参考资料.

下面是个简单的测试转载,可以让大家更加清楚的明白自治事务和非自治事务的区别.

SQL> create table chris_test (name varchar2(200));

Table created.

SQL> create or replace procedure Autonomous_insert
  2  as
  3     pragma autonomous_transaction;
  4  begin
  5     insert into chris_test values ('Autonomous Insert!');
  6     commit;
  7  end;
  8  /

Procedure created.

SQL> create or replace procedure Nonnomous_insert
  2  as
  3  begin
  4     insert into chris_test values ('Nonnomous Insert!');
  5     commit;
  6  end;
  7  /

Procedure created.

SQL> begin
  2     insert into chris_test values ('Anonymous Block!');
  3     Nonnomous_insert;
  4     rollback;
  5  end;
  6  /

PL/SQL procedure successfully completed.

SQL> select * from chris_test;

NAME
--------------------------------------------------------------------------------
Anonymous Block!
Nonnomous Insert!

SQL> truncate table chris_test;

Table truncated.

SQL> begin
  2     insert into chris_test values ('Anonymous Block!');
  3     Autonomous_insert;
  4     rollback;
  5  end;
  6  /

PL/SQL procedure successfully completed.

SQL> select * from chris_test;

NAME
--------------------------------------------------------------------------------
Autonomous Insert!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle insert sql table 测试