事务的原子性是指事务中的动作要么发生,要么不发生.
不想做太多的解释,想了解可以看tom的力作,这里只是随手记录个测试过程.
[@more@]SQL> alter table tt8 add constraint pk_tt8 primary key (id);
表已更改。
SQL> edit
已写入 file afiedt.buf
1 create or replace procedure proc_tt8
2 is
3 begin
4 insert into tt8 values(1,'a');
5 insert into tt8 values(1,'a');
6* end;
SQL> /
过程已创建。
SQL> begin
2 proc_tt8;
3 end;
4 /
begin
*
第 1 行出现错误:
ORA-00001: 违反唯一约束条件 (SYS.PK_TT8)
ORA-06512: 在 "SYS.PROC_TT8", line 5
ORA-06512: 在 line 2
SQL> select * from tt8;
未选定行
SQL> begin
2 proc_tt8;
3 exception when others then
4 null;
5 end;
6 /
PL/SQL 过程已成功完成。
SQL> select * from tt8;
ID NAME
---------- ----------
1 a
SQL> rollback;
回退已完成。
SQL> select * from tt8;
未选定行
SQL> edit
已写入 file afiedt.buf
1 begin
2 savepoint a;
3 proc_tt8;
4 exception when others then
5 rollback to savepoint a;
6* end;
SQL> /
PL/SQL 过程已成功完成。
SQL> select * from tt8;
未选定行
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19602/viewspace-1015319/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/19602/viewspace-1015319/