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.

È stato utile?

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';
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top