检索 PL/SQL 过程架构

发布于 2025-01-05 23:43:14 字数 120 浏览 3 评论 0原文

我需要获取 PL/SQL 过程的参数定义。

在 MS SQL 上,我们使用 Information_schema.Parameters; Oracle 中的对应项(如果有的话)是什么?

I need to get the parameter definitions of a PL/SQL procedure.

On MS SQL, we use Information_schema.Parameters; what is the counterpart ( if any ) in Oracle?

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

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

发布评论

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

评论(2

谁的新欢旧爱 2025-01-12 23:43:14

大多数(如果不是全部)相同数据可以在 Oracle 中从 ALL_ARGUMENTS 访问 数据字典表。 ALL_ARGUMENTS 显示您有权执行的所有过程的参数。 USER_ARGUMENTS 显示您拥有的所有过程的参数。 DBA_ARGUMENTS 显示数据库中存在的所有过程的参数,但您需要额外的权限才能访问 DBA_* 视图。

Most (if not all) of the same data can be accessed in Oracle from the ALL_ARGUMENTS data dictionary table. ALL_ARGUMENTS shows you the arguments for all the procedures that you have permission to execute. USER_ARGUMENTS shows you the arguments for all the procedures that you own. And DBA_ARGUMENTS shows you the arguments for all the procedures that exist in the database but you need additional privileges to access the DBA_* views.

臻嫒无言 2025-01-12 23:43:14

有关存储过程参数的大部分信息可以在 ALL_ARGUMENTS 中找到USER_ARGUMENTS 中类似, DBA_ARGUMENTS

这是一个使用 USER_ARGUMENTS 的快速示例

CREATE OR REPLACE PROCEDURE my_proc
(p_number IN NUMBER,
p_varchar  IN OUT  VARCHAR2 ,
p_clob  IN OUT  NOCOPY CLOB,
p_timestamp  OUT  TIMESTAMP
)
IS
BEGIN
   NULL;
END;
/

CREATE OR REPLACE FUNCTION my_func
(p_date IN DATE,
p_varchar IN VARCHAR2)
RETURN BOOLEAN
IS
BEGIN
return TRUE;
END;
/

SELECT package_name,object_name, argument_name,  IN_OUT , pls_type ,position
FROM user_arguments
WHERE object_name IN ('MY_PROC','MY_FUNC')
ORDER BY package_name, object_name, position;

,它给出了输出..

Procedure created.

Function created.

 PACKAGE_NAME          OBJECT_NAME                    ARGUMENT_NAME             IN_OUT    PLS_TYPE              POSITION
--------------------- ------------------------------ ------------------------- --------- -------------------- ----------
                       MY_FUNC                                                  OUT       BOOLEAN                      0
                       MY_FUNC                        P_DATE                    IN        DATE                         1
                       MY_FUNC                        P_VARCHAR                 IN        VARCHAR2                     2
                       MY_PROC                        P_NUMBER                  IN        NUMBER                       1
                       MY_PROC                        P_VARCHAR                 IN/OUT    VARCHAR2                     2
                       MY_PROC                        P_CLOB                    IN/OUT    CLOB                         3
                       MY_PROC                        P_TIMESTAMP               OUT       TIMESTAMP                    4

7 rows selected.

正如您所看到的,它具有最有用的信息.. 但不显示 NOCOPY 提示。
为 null 的 ARGUMENT_NAME 是函数的“返回值”。ALL_

和 DBA_ 版本将有一个附加的 OWNER 列。

有关存储过程本身的其他信息可以在 ALL_PROCEDURES , ALL_PLSQL_OBJECT_SETTINGSALL_OBJECTS 取决于您要查找的详细程度。

Most of the information about stored procedure parameters can be found in ALL_ARGUMENTS and similarly in USER_ARGUMENTS and DBA_ARGUMENTS

Here is a quick sample using USER_ARGUMENTS

CREATE OR REPLACE PROCEDURE my_proc
(p_number IN NUMBER,
p_varchar  IN OUT  VARCHAR2 ,
p_clob  IN OUT  NOCOPY CLOB,
p_timestamp  OUT  TIMESTAMP
)
IS
BEGIN
   NULL;
END;
/

CREATE OR REPLACE FUNCTION my_func
(p_date IN DATE,
p_varchar IN VARCHAR2)
RETURN BOOLEAN
IS
BEGIN
return TRUE;
END;
/

SELECT package_name,object_name, argument_name,  IN_OUT , pls_type ,position
FROM user_arguments
WHERE object_name IN ('MY_PROC','MY_FUNC')
ORDER BY package_name, object_name, position;

which gives the output of..

Procedure created.

Function created.

 PACKAGE_NAME          OBJECT_NAME                    ARGUMENT_NAME             IN_OUT    PLS_TYPE              POSITION
--------------------- ------------------------------ ------------------------- --------- -------------------- ----------
                       MY_FUNC                                                  OUT       BOOLEAN                      0
                       MY_FUNC                        P_DATE                    IN        DATE                         1
                       MY_FUNC                        P_VARCHAR                 IN        VARCHAR2                     2
                       MY_PROC                        P_NUMBER                  IN        NUMBER                       1
                       MY_PROC                        P_VARCHAR                 IN/OUT    VARCHAR2                     2
                       MY_PROC                        P_CLOB                    IN/OUT    CLOB                         3
                       MY_PROC                        P_TIMESTAMP               OUT       TIMESTAMP                    4

7 rows selected.

As you can see it has most useful information.. but does not show the NOCOPY hint.
the ARGUMENT_NAME that is null is the 'return value' of the function

the ALL_ and DBA_ version will have an additional OWNER column.

additinal information about the stored procedure itself can be found in ALL_PROCEDURES , ALL_PLSQL_OBJECT_SETTINGS and ALL_OBJECTS depending on what level of detail you are looking for.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文