【赛迪网-it技术报道】下面是个简单的测试,可以让大家更加清楚的明白自治事务和非自治事务的区别:
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!
闽公网安备 35060202000074号