Oracle 检索PL/SQL过程模式
我需要获取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_参数中找到,类似地,也可以在用户参数和
在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版本将有一个额外的所有者列
有关存储过程本身的附加信息可以在中找到,具体取决于您要查找的详细程度