【发布时间】:2010-11-06 17:31:41
【问题描述】:
是否可以检索驻留在特定包中的所有过程和函数的名称?我知道可以从 ALL_SOURCE 视图中收集到它们(闻起来 hack-ish),但我更喜欢更规范的策略。
【问题讨论】:
标签: oracle function plsql introspection procedure
是否可以检索驻留在特定包中的所有过程和函数的名称?我知道可以从 ALL_SOURCE 视图中收集到它们(闻起来 hack-ish),但我更喜欢更规范的策略。
【问题讨论】:
标签: oracle function plsql introspection procedure
DBA_PROCEDURES 在包中有公共方法
SELECT owner,
object_name AS package_name,
procedure_name AS method_name
FROM dba_procedures
WHERE object_type = 'PACKAGE'
如果您还需要私有方法,则无法在数据字典中直接访问该信息。在这种情况下,您需要解析源代码(这显然会很痛苦,特别是如果您碰巧在包中的公共或私有方法中嵌套了私有方法)。
【讨论】:
以下将返回特定包中的所有过程和函数名称:
SELECT procedure_name FROM user_procedures WHERE object_name='mypackagename';
【讨论】: