PL / SQL: получение имен процедур и функций в пакете - PullRequest
4 голосов
/ 29 июня 2009

Можно ли получить имена всех процедур и функций, которые находятся в определенном пакете? Я понимаю, что их можно почерпнуть (пахнет hack-ish ) с точки зрения ALL_SOURCE, но я бы предпочел более каноническую стратегию.

Ответы [ 2 ]

9 голосов
/ 29 июня 2009

DBA_PROCEDURES имеет открытые методы в пакете

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

Если вам также нужны частные методы, эта информация не доступна напрямую в словаре данных. В этом случае вам нужно будет проанализировать исходный код (что, очевидно, будет довольно болезненным, особенно если у вас есть вложенные частные методы в открытых или закрытых методах пакета).

1 голос
/ 29 июня 2009

следующее вернет все имена процедур и функций из определенного пакета:

SELECT procedure_name FROM user_procedures WHERE object_name='mypackagename';
...