4

是否可以检索驻留在特定包中的所有过程和函数的名称?我知道从视图中可以收集到它们(闻起来有点骇人听闻ALL_SOURCE,但我更喜欢更规范的策略。

4

2 回答 2

9

DBA_PROCEDURES 在包中具有公共方法

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

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

于 2009-06-29T15:45:12.197 回答
2

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

SELECT procedure_name FROM user_procedures WHERE object_name='mypackagename';
于 2009-06-29T15:48:34.123 回答