在 PL/SQL 中列出过程参数
Posted
技术标签:
【中文标题】在 PL/SQL 中列出过程参数【英文标题】:Listing procedure parameters in PL/SQL 【发布时间】:2014-12-15 14:51:44 【问题描述】:我可以通过查询 dba_procedures 来检索所有过程的列表。但是我只能提取过程名称。但我也需要它们的参数。
现在,我知道我可以通过查询all_source 表来访问“当前用户可访问的存储对象的文本源”。
但是还有其他方法可以检索过程的参数吗?
【问题讨论】:
Oracle 中没有db_procedures
视图或表
@Ben 的意思是 DBA_PROCEDURES
抱歉 - 是的,我的意思是 DBA_PROCEDURES。谢谢马克。修改了我的帖子。
【参考方案1】:
您可以使用 SYS.ALL_ARGUMENTS 表查询参数:
SELECT * FROM SYS.ALL_ARGUMENTS WHERE
PACKAGE_NAME = '<null_or_package_name>' AND
OBJECT_NAME = '<procedure_name>';
【讨论】:
【参考方案2】:在 SQL*Plus 或 SQL Developer 中,您可以使用 DESCribe procedure_name
命令:
Oracle> desc dbms_metadata
FUNCTION ADD_TRANSFORM RETURNS NUMBER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
HANDLE NUMBER IN
NAME VARCHAR2 IN
ENCODING VARCHAR2 IN DEFAULT
OBJECT_TYPE VARCHAR2 IN DEFAULT
FUNCTION CHECK_MATCH_TEMPLATE RETURNS NUMBER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
POBJNO NUMBER IN
SPCNT NUMBER IN
...
【讨论】:
@road242 答案为您提供完整的信息;如果您想要一个快速的汇总列表,DESCribe proc_name 通常会为您提供所需的内容。以上是关于在 PL/SQL 中列出过程参数的主要内容,如果未能解决你的问题,请参考以下文章