Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理oracle包中的异常?_Oracle_Plsql_Plsql Package - Fatal编程技术网

如何处理oracle包中的异常?

如何处理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。我建议您关闭一些自动提交设

我有一个包含许多过程的oracle包。 e、 g

在执行包proc1时,首先调用proc1,然后在proc1内调用proc2。
因此,如果我在proc 2中遇到异常,那么我想回滚在proc 1中完成的所有DML。

您无需执行任何操作,Oracle将为您执行回滚。只是不要在这些过程中的任何地方提交—让调用方在完成所有操作后决定是否提交


另外,不要使用DDL,因为它会隐式地提交到目前为止已经完成的所有工作。

除了Littlefoot提到的内容之外,请考虑您正在使用的任何IDE。我建议您关闭一些自动提交设置。否则,回滚将无济于事。

您可以使用带有保存点的回滚,通过该保存点可以回滚到当前事务请清除以下内容:1-Proc1调用Proc2?2-Proc2有一些DML吗?
pkg(
proc 1
proc 2
proc 3
);