PL / SQL - 只有在程序完成后才会执行语句吗?

时间:2016-08-17 17:10:52

标签: oracle plsql

希望这是一个简单的问题。说我有这样一个块:

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

  ... DML statements ...
END;

问题:DML statements仅在a_random_procedure完成后执行吗?就此而言,a_random_procedure之后的任何事情都会在完成之后执行吗?

ADD-ON:当a_random_procedure在其中执行另一个程序时呢?

2 个答案:

答案 0 :(得分:3)

是的," DML声明"只有在" a_random_procedure"之后才会执行完成了。
如果你有另一个程序,第一个程序将等到其中的程序也完成。
在您调用另一个过程或函数的任何时刻,下一个代码行将等到之前调用的过程或函数完成执行

答案 1 :(得分:2)

PL / SQL就像launguage的名字 - 程序,所以你的问题的答案是肯定的,dml将在程序完成后执行,即使过程调用其他procs / functions。你可以在你的程序崩溃时关注案例,然后它将不会完成,然后thera是2个选项,如果处理过程中的异常,那么你的dml将被执行。如果没有处理异常,它将被填充级别,在这种情况下是你的匿名块,并且崩溃(停止)它也不会执行DML。