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

发布于 2024-11-02 01:01:59 字数 227 浏览 1 评论 0原文

我想从 Oracle 数据库检索有关过程/函数的信息。我知道,我可以使用 ALL_PROCEDURES 和 USER_OBJECTS 表,但它们只告诉我现有过程/函数的名称。我想获得返回类型和参数而不解析任何源。在Oracle下可以吗?这在 PostgreSQL 下非常简单,并且可以在 MySQL 下完成(据我所知 5.5 下的争论)。

I would like to retrieve information about procedures/functions from Oracle database. I know, that I can use ALL_PROCEDURES and USER_OBJECTS tables, but they only inform me about names of existing procedures/functions. I would like to get return type and argument without parsing any source. Is that possible under Oracle? It's pretty easy under PostgreSQL and can be done under MySQL (argument under 5.5 AFAIK).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

醉南桥 2024-11-09 01:01:59

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

It sounds like you want the ALL_ARGUMENTS view (or USER_ARGUMENTS or 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文