Pregunta

¿Es posible recuperar los nombres de todos los procedimientos y funciones que residen dentro de un paquete en particular? Tengo entendido que se puede extraer (olores Hack-ish ) desde el punto de vista ALL_SOURCE, pero yo preferiría una estrategia más canónica.

¿Fue útil?

Solución

DBA_PROCEDURES tiene los métodos públicos dentro de un paquete

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

Si también desea métodos privados, que la información no es accesible directamente en el diccionario de datos. En ese caso, que había necesidad de analizar la fuente (que, obviamente, sería bastante doloroso, sobre todo si va a haber anidado métodos privados dentro de los métodos públicos o privados en el paquete).

Otros consejos

la siguiente devolverá todos los nombres de los procedimientos y funciones de un paquete específico:

SELECT procedure_name FROM user_procedures WHERE object_name='mypackagename';
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top