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

Ada*_*ter 4 oracle plsql procedure function introspection

是否可以检索特定包中的所有过程和函数的名称?我知道它们可以从视图中收集(闻起来像是hack-ish)ALL_SOURCE,但我更倾向于采用更规范的策略.

Jus*_*ave 9

DBA_PROCEDURES具有包中的公共方法

SELECT owner, 
       object_name AS package_name, 
       procedure_name AS method_name
  FROM dba_procedures
 WHERE object_type = 'PACKAGE'
Run Code Online (Sandbox Code Playgroud)

如果您还需要私有方法,则无法在数据字典中直接访问该信息.在这种情况下,您需要解析源代码(这显然会非常痛苦,特别是如果您碰巧在包中的公共或私有方法中嵌套了私有方法).

  • +1,您还可以在USER_PROCEDURES和ALL_PROCEDURES公共视图中获取此信息 (2认同)