如何处理oracle包中的异常?
我有一个包含许多过程的oracle包。 e、 g 在执行包proc1时,首先调用proc1,然后在proc1内调用proc2。如何处理oracle包中的异常?,oracle,plsql,plsql-package,Oracle,Plsql,Plsql Package,我有一个包含许多过程的oracle包。 e、 g 在执行包proc1时,首先调用proc1,然后在proc1内调用proc2。 因此,如果我在proc 2中遇到异常,那么我想回滚在proc 1中完成的所有DML。您无需执行任何操作,Oracle将为您执行回滚。只是不要在这些过程中的任何地方提交—让调用方在完成所有操作后决定是否提交 另外,不要使用DDL,因为它会隐式地提交到目前为止已经完成的所有工作。除了Littlefoot提到的内容之外,请考虑您正在使用的任何IDE。我建议您关闭一些自动提交设
因此,如果我在proc 2中遇到异常,那么我想回滚在proc 1中完成的所有DML。您无需执行任何操作,Oracle将为您执行回滚。只是不要在这些过程中的任何地方提交—让调用方在完成所有操作后决定是否提交
另外,不要使用DDL,因为它会隐式地提交到目前为止已经完成的所有工作。除了Littlefoot提到的内容之外,请考虑您正在使用的任何IDE。我建议您关闭一些自动提交设置。否则,回滚将无济于事。您可以使用带有保存点的回滚,通过该保存点可以回滚到当前事务请清除以下内容:1-Proc1调用Proc2?2-Proc2有一些DML吗?
pkg(
proc 1
proc 2
proc 3
);