Oracle PL/SQL—语句是否仅在过程完成后执行?

Oracle PL/SQL—语句是否仅在过程完成后执行?,oracle,plsql,Oracle,Plsql,希望这是一个简单的问题。假设我有这样一个积木: BEGIN a_random_procedure ('input','output'); ... DML statements ... END; 问题:DML语句是否仅在a\u random\u过程完成后执行?就这一点而言,在a_random\u过程之后的任何事情都会在它完成后执行吗 附加:当一个随机过程执行另一个过程时,该怎么办?是的,只有在“随机过程”完成后,“DML语句”才会执行如果其中有另一个过程,则第一个过程将等待,直到其中的

希望这是一个简单的问题。假设我有这样一个积木:

BEGIN
  a_random_procedure ('input','output');

  ... DML statements ...
END;
问题:
DML语句
是否仅在
a\u random\u过程
完成后执行?就这一点而言,在
a_random\u过程之后的任何事情都会在它完成后执行吗


附加:当一个随机过程执行另一个过程时,该怎么办?

是的,只有在“随机过程”完成后,“DML语句”才会执行
如果其中有另一个过程,则第一个过程将等待,直到其中的过程也完成
在调用另一个过程或函数的任何时刻,下一个代码行都将等待,直到之前调用的过程或函数完成其执行

是的,“DML语句”将仅在“随机过程”完成后执行
如果其中有另一个过程,则第一个过程将等待,直到其中的过程也完成
在您调用另一个过程或函数的任何时刻,下一个代码行都将等待,直到之前调用的过程或函数完成其执行

PL/SQL就像以launguage-procedural的名义一样,因此您的问题的答案是肯定的,dml将在过程完成后执行,即使过程调用其他过程/函数。当您的过程崩溃时,您可以处理该情况,然后它将不会完成,然后有两个选项,如果过程中的异常得到处理,那么您的dml将被执行。如果未处理异常,它将被逐级填充,在本例中填充到匿名块,并崩溃(停止)它,它将不会执行DML。

PL/SQL类似于launguage-procedural的名称,因此您的问题的答案是肯定的,DML将在过程完成后执行,即使过程调用其他过程/函数。当您的过程崩溃时,您可以处理该情况,然后它将不会完成,然后有两个选项,如果过程中的异常得到处理,那么您的dml将被执行。如果未处理异常,它将被逐级填充,在本例中填充到匿名块,并使其崩溃(停止),它将不会执行DML。

是。语句的执行是连续的。嗨,我已经编辑了这篇文章并包含了更多的信息。是的。语句执行是顺序的。您好,我已经编辑了这篇文章并包含了更多的信息。准确地说,PL/SQL支持过程编码的事实与这个问题无关。准确地说,PL/SQL支持过程编码的事实与这个问题无关。