2012-08-28 2 views
5

Je souhaite obtenir le nom d'un paramètre dans plsql.Obtenir le nom d'un paramètre

Par exemple,

procedure sp_example(myParam in varchar2) is 

paramName varchar2(30); 
begin 
    paramName = 'myParam'; 
end 
end procedure sp_example; 

est-il un moyen d'obtenir le nom de myParam utilisant la réflexion, au lieu de coder en dur il?

Répondre

6

Essayez:

select argument_name from all_arguments where object_name = 'SP_EXAMPLE'; 

Ce point de vue peut aussi vous montrer les types de données, postes, etc., et vous pouvez l'utiliser dans SQL ou PL/SQL. Beaucoup d'informations dans les différentes vues de métadonnées.

+1

Vous pouvez utiliser '' OWA_UTIL.who_called_me' et une procédure who_am_i' pour obtenir dynamiquement le propriétaire de la procédure et le nom . Mais malheureusement, il n'y a pas de moyen facile d'obtenir le nom de la procédure dans un paquet. http://tkyte.blogspot.com/2009/10/httpasktomoraclecomtkytewhocalledme.html –

1

Si vous souhaitez obtenir les noms des paramètres récupérés dans leurs positions respectives, utilisez

select argument_name from user_arguments where object_name='SAMPLE_PROC' order by position;

Questions connexes