今天看了一个程序包,大致结构如下
create or replace package body test_p is
PROCEDURE test_sub IS
BEGIN
dbms_output.put_line('in');
END;
begin
dbms_output.put_line('out');
END ;然后我在外部调用包里面的过程test_sub
BEGIN
test_p.test_sub;
END;输出结果为:
out
in
由此可见,即使你调用包里面的某个程序,它也会先执行包里面begin end间的内容,而不仅仅是调用程序部分的内容。。。这点阅读程序的时候要小心。。。
本文通过一个简单的PL/SQL程序包示例说明了在Oracle数据库中调用包内过程时,包主体内的BEGIN...END块将先于被调用的过程执行。此行为对于理解程序流程至关重要。

被折叠的 条评论
为什么被折叠?



