Oracle 检索PL/SQL过程模式

Oracle 检索PL/SQL过程模式,oracle,sql-server-2008,plsql,information-schema,Oracle,Sql Server 2008,Plsql,Information Schema,我需要获取PL/SQL过程的参数定义 在MS SQL上,我们使用信息\u schema.Parameters;Oracle中的对应项(如果有的话)是什么?在Oracle中,可以从数据字典表访问相同数据的大部分(如果不是全部的话)ALL_ARGUMENTS显示您有权执行的所有过程的参数用户参数显示您拥有的所有过程的参数。和DBA_参数显示数据库中存在的所有过程的参数,但您需要额外的权限才能访问DBA_*视图。有关存储过程参数的大多数信息可以在用户参数和DBA_参数中找到,类似地,也可以在用户参数和

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


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

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

有关存储过程参数的大多数信息可以在
用户参数
DBA_参数
中找到,类似地,也可以在
用户参数
DBA_参数
中找到

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;
下面是一个使用
USER\u参数的快速示例

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提示。 参数_NAME为null是函数的“返回值”

ALL_uu和DBA_uuu版本将有一个额外的所有者列

有关存储过程本身的附加信息可以在中找到,具体取决于您要查找的详细程度