oracle: выберите информацию о функции / процедуре - PullRequest
1 голос
/ 19 апреля 2011

Я хотел бы получить информацию о процедурах / функциях из базы данных Oracle .Я знаю, что могу использовать таблицы ALL_PROCEDURES и USER_OBJECTS, но они информируют меня только об именах существующих процедур / функций.Я хотел бы получить тип возвращаемого значения и аргумент без разбора любого источника.Это возможно при Oracle ?Это довольно просто в PostgreSQL и может быть сделано в MySQL (аргумент в 5.5 AFAIK).

1 Ответ

4 голосов
/ 19 апреля 2011

Звучит так, как будто вы хотите посмотреть ALL_ARGUMENTS (или USER_ARGUMENTS или DBA_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
...