Eseguire una ricerca tra il testo contenuto in package e funzioni
A volte siamo nella situazione di dover cercare del testo all’interno di tutto il database e non sappiamo come fare, e per “tutto il database” non intendo in tutte le tabelle, ma nelle funzioni, nelle procedure e nei package contenuti nel database stesso.
PL/SQL, che io sappia e che potrei anche sbagliare, non permette la ricerca di testo all’interno di tutto il database, ma Oracle ci viene incontro fornendoci gli strumenti giusti indipendentemente dal client che usiamo per interrogarlo.
La tabella USER_SOURCE contiene (riga per riga) il contenuto di tutti gli oggetti del database in cui vi siete loggati, siano essi procedure, package, function, e così via. Se volessimo, quindi, cercare dove viene utilizzata una tabella o del testo specifico, basta usare questa query
SELECT * FROM ALL_SOURCE WHERE TEXT LIKE '%testo da cercare%' ORDER BY 1, 2, 3, 4;
e vi ritroverete il nome dell’oggetto, il tipo, la riga e il numero di riga dove si trova il testo desiderato.