SQL> set echo on
SQL>
SQL>
SQL> create table t ( msg varchar2(25) );
SQL>
SQL> create or replace procedure Autonomous_Insert
2 as
3 pragma autonomous_transaction;
4 begin
5 insert into t values ( 'Autonomous Insert' );
6 commit;
7 end;
8 /
Procedure created.
SQL>
SQL> create or replace procedure NonAutonomous_Insert
2 as
3 begin
4 insert into t values ( 'NonAutonomous Insert' );
5 commit;
6 end;
7 /
Procedure created.
SQL>
SQL> select * from t;
MSG
-------------------------
Anonymous
SQL>
SQL> begin
2 insert into t values ( 'Anonymous Block' );
3 NonAutonomous_Insert;
4 rollback;
5 end;
6 /
PL/SQL procedure successfully completed.
SQL>
SQL> select * from t;
MSG
-------------------------
Anonymous
Anonymous Block
NonAutonomous Insert
SQL> delete from t;
3 rows deleted.
SQL> commit;
Commit complete.
SQL>
SQL> begin
2 insert into t values ( 'Anonymous Block' );
3 Autonomous_Insert;
4 rollback;
5 end;
6 /
PL/SQL procedure successfully completed.
SQL>
SQL> select * from t;
MSG
-------------------------
Autonomous Insert
SQL>
SQL>
SQL> drop table t;
Table dropped.
SQL>
|