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

时间:2009-06-29 15:19:06

标签: oracle function plsql introspection procedure

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

2 个答案:

答案 0 :(得分:9)

DBA_PROCEDURES包含

中的公共方法
SELECT owner, 
       object_name AS package_name, 
       procedure_name AS method_name
  FROM dba_procedures
 WHERE object_type = 'PACKAGE'

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

答案 1 :(得分:1)

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

SELECT procedure_name FROM user_procedures WHERE object_name='mypackagename';