Cercare un testo in tutti gli oggetti di un database Oracle

Eseguire una ricerca tra il testo contenuto in package e funzioni

data-center-

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.

Controlliamo ciclicamente il funzionamento dei link nei nostri articoli. Se noti dei link che non funzionano segnalacelo tra i commenti. Se hai apprezzato l'articolo considera l'idea di sostenere il blog anche con una piccola donazione. Grazie. Patreon / Ko-fi / Liberapay / Paypal

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *