2009-07-06 5 views
1

Comment qualifier un appel de fonction ou de procédure pour indiquer qu'il doit être à portée globale? J'ai mon propre scn_to_timestamp() dans un paquet qui doit appeler la fonction globale par défaut de le même nom.Oracle: Qualificateur d'espace de noms global pour la fonction?

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; 

mise à jour: Il se trouve qu'il n'y a pas une telle chose en fonction « globale », puisque toutes les fonctions existent dans un schéma. Ce qui apparaît comme global est en fait un synonyme public, tout ce que vous devez faire est de préfixe l'appel avec le schéma qui a exporté la fonction, dans ce cas:

 return sys.scn_to_timestamp(scn); 

Répondre

2

utiliser uniquement le nom de schéma pour faire référence au global . J'ai utilisé le propriétaire du schéma.

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

merci. scn_to_timestamp appartient à sys, donc j'ai mis à jour pour refléter. –

Questions connexes