Oracle:函数的全局命名空间限定符?

时间:2009-07-06 01:51:42

标签: oracle plsql namespaces

如何限定函数或过程调用以指示它 应该在全球范围内吗?我有自己的scn_to_timestamp() 在一个需要调用默认全局函数的包中 同名。

create or replace package px as
    function scn_to_timestamp(scn number) return timestamp;
end px;

create or replace package body px as
    function scn_to_timestamp(scn number) return timestamp is
    begin
        -- how do I qualify this to refer to the global function?
        return scn_to_timestamp(scn);
    end;
end px;

更新:事实证明,没有“全局”功能,因为所有功能都存在于架构下。看起来像全局的实​​际上是公共同义词,因此您所要做的就是在调用前加上导出函数的模式,在这种情况下:

        return sys.scn_to_timestamp(scn);

1 个答案:

答案 0 :(得分:2)

只需使用模式名称来引用全局。 我使用了架构所有者。

create or replace package px as
    function scn_to_timestamp(scn number) return timestamp;
end px;

create or replace package body px as
    function scn_to_timestamp(scn number) return timestamp is
    begin
        -- how do I qualify this to refer to the global function?
        return sys.scn_to_timestamp(scn);
    end;
end px;