服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > Oracle开发 > 查看文档

用一个示例讲解自治事务和非自治事务的区别

【赛迪网-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!

扫描关注微信公众号