2009-07-06 11 views
1

がグローバルスコープにある必要があることを示すために、関数呼び出しまたはプロシージャ呼び出しを修飾するにはどうすればよいですか? のデフォルトグローバルファンクションを同じ名前で呼び出す必要があるパッケージに自分自身のscn_to_timestamp()を持っています。Oracle:関数のグローバル名前空間修飾子?

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); 

答えて

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; 
+0

ありがとう。 scn_to_timestampはsysが所有しているので、反映するように更新しました。 –

関連する問題