2012-08-28 104 views
5

我想在plsql中获取参数名称。获取参数名称

例如,

procedure sp_example(myParam in varchar2) is 

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

有没有办法使用反射来获取的myParam的名称,而不是硬编码呢?

回答

6

尝试:

select argument_name from all_arguments where object_name = 'SP_EXAMPLE'; 

这一观点也可以显示你的数据类型,位置等,你可以在SQL或PL/SQL中使用它。各种元数据视图中的大量信息。

+1

你可以用'OWA_UTIL.who_called_me'和'who_am_i'过程动态获取过程所有者和名称。但不幸的是,没有简单的方法在程序包中获取程序的名称。 http://tkyte.blogspot.com/2009/10/httpasktomoraclecomtkytewhocalledme.html –

1

如果你想获得在各自的岗位上检索的参数的名称,使用

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