我怀疑你可能会混淆"执行"与"输出".例如,如果我这样做:
begin
dbms_output.put_line('Line1');
dbms_lock.sleep(30);
dbms_output.put_line('Line2');
end;
Run Code Online (Sandbox Code Playgroud)
然后在运行时,我将看不到30秒......然后看到两条线在执行结束时出现.但是"第1行"确实在睡眠之前执行 - 但我们只在块执行结束时看到输出.
我们可以通过改变输出来轻松地证明这一点
SQL> set serverout on
SQL> begin
2 dbms_output.put_line('I ran at '||to_char(sysdate,'HH24:MI:SS'));
3 dbms_lock.sleep(30);
4 dbms_output.put_line('and I ran at '||to_char(sysdate,'HH24:MI:SS'));
5 end;
6 /
I ran at 10:49:54
and I ran at 10:50:24
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
495 次 |
| 最近记录: |