我在PL/SQL中有一个匿名块:
begin dml1 dml2 dml3 end; /
我不希望在DML2抛出错误时回滚dml1和dml3。我不能使用DBMS_ERRLOG和pragma autonous_transaction。我还有哪些其他选项?
DML2
dml1
dml3
DBMS_ERRLOG
eoxn13cs1#
只需处理DML2抛出的任何异常:
begin dml1; begin dml2; exception when others then null; -- or log, or report error, or whatever end; dml3; end; /
pkwftd7m2#
关键是异常处理。
begin begin dml1 exception when others then null; --- generally not indicated /*there should be an error handling section, or, at leasr an error logging procedure*/ end; begin dml2 exception when others then null; end; dml3 end;
异常处理的RTM,查看数据处理中可能发生的异常,并根据业务需求决定如何处理这些异常。
2条答案
按热度按时间eoxn13cs1#
只需处理DML2抛出的任何异常:
pkwftd7m2#
关键是异常处理。
异常处理的RTM,查看数据处理中可能发生的异常,并根据业务需求决定如何处理这些异常。