【问题标题】:oracle: select information about a function/procedureoracle:选择有关函数/过程的信息
【发布时间】:2011-04-18 22:09:05
【问题描述】:

我想从 Oracle 数据库中检索有关过程/函数的信息。我知道,我可以使用ALL_PROCEDURESUSER_OBJECTS 表,但它们只通知我现有过程/函数的名称。我想在不解析任何源的情况下获得返回类型和参数。这在 Oracle 下是否可行?在 PostgreSQL 下很容易,并且可以在 MySQL 下完成(5.5 AFAIK 下的参数)。

【问题讨论】:

    标签: oracle function database-schema procedures


    【解决方案1】:

    听起来您想要ALL_ARGUMENTS 视图(或USER_ARGUMENTSDBA_ARGUMENTS

    SQL> create or replace function f1( p_in in varchar2,
      2                                 p_in_out in out number )
      3    return number
      4  is
      5  begin
      6    return 1;
      7  end;
      8  /
    
    Function created.
    
    SQL> ed
    Wrote file afiedt.buf
    
      1  select argument_name, position, in_out, data_type
      2    from all_arguments
      3   where object_name = 'F1'
      4*    and package_name is null
    SQL> /
    
    ARGUMENT_N   POSITION IN_OUT    DATA_TYPE
    ---------- ---------- --------- ----------
    P_IN_OUT            2 IN/OUT    NUMBER
    P_IN                1 IN        VARCHAR2
                        0 OUT       NUMBER
    

    【讨论】:

    • SQL*Plus describe 命令也适用于过程、函数和包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 2019-09-19
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多