【问题标题】:Get a parameter's name获取参数名称
【发布时间】:2012-08-30 02:34:54
【问题描述】:

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

例如,

procedure sp_example(myParam in varchar2) is

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

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

【问题讨论】:

    标签: reflection plsql


    【解决方案1】:

    试试:

    select argument_name from all_arguments where object_name = 'SP_EXAMPLE';
    

    此视图还可以显示数据类型、位置等,您可以在 SQL 或 PL/SQL 中使用它。各种元数据视图中的大量信息。

    【讨论】:

    • 您可以使用OWA_UTIL.who_called_mewho_am_i 过程来动态获取过程所有者和名称。但不幸的是,没有简单的方法可以在包中获取过程的名称。 tkyte.blogspot.com/2009/10/…
    【解决方案2】:

    如果要获取在各自位置检索到的参数名称,请使用

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

    【讨论】:

      猜你喜欢
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 2016-10-21
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多