Oracle PL/SQL:检索包中过程和函数的名称

Oracle PL/SQL:检索包中过程和函数的名称,oracle,function,plsql,introspection,procedure,Oracle,Function,Plsql,Introspection,Procedure,是否可以检索驻留在特定包中的所有过程和函数的名称?我知道它们可以从所有源代码视图中收集(有股黑客味),但我更喜欢一种更规范的策略。DBA\u过程在一个包中包含公共方法 SELECT owner, object_name AS package_name, procedure_name AS method_name FROM dba_procedures WHERE object_type = 'PACKAGE' 如果还需要私有方法,则无法直接在数据字典中访问

是否可以检索驻留在特定包中的所有过程和函数的名称?我知道它们可以从
所有源代码
视图中收集(有股黑客味),但我更喜欢一种更规范的策略。

DBA\u过程在一个包中包含公共方法

SELECT owner, 
       object_name AS package_name, 
       procedure_name AS method_name
  FROM dba_procedures
 WHERE object_type = 'PACKAGE'

如果还需要私有方法,则无法直接在数据字典中访问该信息。在这种情况下,您需要解析源代码(这显然是相当痛苦的,尤其是当您碰巧在包的public或private方法中有嵌套的private方法时)。

以下内容将返回特定包中的所有过程和函数名:

SELECT procedure_name FROM user_procedures WHERE object_name='mypackagename';

+1,您还可以在“用户程序”和“所有程序”公共视图中获得此信息