PL/SQL:Recupera nomi di procedure e funzioni all'interno di un pacchetto
-
21-08-2019 - |
Domanda
È possibile recuperare i nomi di tutte le procedure e funzioni che risiedono all'interno di un particolare pacchetto?Capisco che possono essere raccolti (odori hack) dal ALL_SOURCE
punto di vista, ma preferirei una strategia più canonica.
Soluzione
DBA_PROCEDURES ha i metodi pubblici all'interno di un pacchetto
SELECT owner,
object_name AS package_name,
procedure_name AS method_name
FROM dba_procedures
WHERE object_type = 'PACKAGE'
Se desideri anche metodi privati, tali informazioni non sono direttamente accessibili nel dizionario dati.In tal caso, dovresti analizzare la fonte (il che sarebbe ovviamente piuttosto doloroso, in particolare se ti capita di avere metodi privati annidati all'interno di metodi pubblici o privati nel pacchetto).
Altri suggerimenti
seguito restituirà tutti i nomi delle procedure e delle funzioni da un pacchetto specifico:
SELECT procedure_name FROM user_procedures WHERE object_name='mypackagename';