【发布时间】:2011-08-04 18:03:55
【问题描述】:
给定一个包裹:
create or replace package foo as
f1 number := 1;
end;
/
代替:
declare
begin
dbms_output.put_line('f1 = ' || foo.f1);
end;
/
我想写:
declare
begin
-- pseudocode not a valid PL/SQL
import dbms_output.*;
import foo.*;
put_line('f1 = ' || f1);
end;
/
但是该怎么做呢?
Jeff 编辑:(试图保持 PL/SQL 中的工作方式的精神)
DECLARE
PRAGMA IMPORT dbms_output AS d;
PRAGMA IMPORT foo AS f;
BEGIN
d.put_line('f1 = ' || f.f1);
END;
/
【问题讨论】:
-
如果另一个包定义了“put_line”方法(或f1)怎么办?
-
这是一个非常有效的观点,但我相信如果 PL/SQL 具有此功能,它就会像许多其他语言一样得到解决。
-
就个人而言,我认为虽然从表面上看这是一个不错的功能,但有一个缺点是它消除了函数/过程的全名规范的自我记录性质.作为一个普通程序员阅读 Java 代码的困难之一可能是找出特定函数的定义位置。
-
DCookie:我的例子怎么样(编辑 Q)?
标签: oracle plsql namespaces packages