oracle:选择有关函数/过程的信息

时间:2011-04-18 22:09:06

标签: oracle function database-schema procedures

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

1 个答案:

答案 0 :(得分:4)

听起来你想要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