自治事务和非自治事务的区别


下面是个简单的测试,可以让大家更加清楚的明白自治事务和非自治事务的区别:          SQL> create table chris_test (name varchar2(200));
        Table created.
        SQL> create or replace procedure Autonomous_insert
         as
         pragma autonomous_transaction;
         begin
         insert into chris_test values ('Autonomous Insert!');
         commit;
         end;
        Procedure created.
        SQL> create or replace procedure Nonnomous_insert
         as
         begin
         insert into chris_test values ('Nonnomous Insert!');
         commit;
         end;
        Procedure created.
        SQL> begin
         insert into chris_test values ('Anonymous Block!');
         Nonnomous_insert;
         rollback;
         end;
        PL/SQL procedure successfully completed.
        SQL> select * from chris_test;
        NAME
        ------------------------------------------------          Anonymous Block!
        Nonnomous Insert!
        SQL> truncate table chris_test;
        Table truncated.
        SQL> begin
         insert into chris_test values ('Anonymous Block!');
         Autonomous_insert;
         rollback;
         end;
        PL/SQL procedure successfully completed.
        SQL> select * from chris_test;
        NAME
       ----------------------------------------------

        Autonomous Insert!

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3