Oracle 数据库如何回滚到 PL/SQL 块的开头,而不是早期的 DML 指令(我认为所有这些都在一个事务下)。因为当我尝试ROLLBACK
创建异常处理程序时,直到最后的所有指令COMMIT
都被回滚。
create table mytable (num int not null primary key);
insert into mytable values(1); // My ROLLBACK, rollbacks to here.
begin // Oracle exception handler rollbacks to here.
insert into mytable values(3);
begin
insert into mytable values(2);
insert into mytable values(1);
end;
/* Incase I try to ROLLBACK all the updates including the first insert is gone.*/
--exception when dup_val_on_index then
--rollback;
end;
决赛桌数据:
1) Incase of oracle handling exception
mytable
_______
1
2) 发生oracle处理异常
mytable
_______
那么ROLLBACK
Oracle 异常处理程序与我的ROLLBACK
.