Cercare un testo in tutti gli oggetti di un database Oracle

7 ottobre 2015 / DEV / 1668 visualizzazioni
Nessun commento
Scritto da  

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.

data-center-

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

[sql]

SELECT *
FROM USER_SOURCE
WHERE TEXT LIKE ‘%testo da cercare%’
ORDER BY 1, 2, 3

[/sql]

E vi ritroverete il nome dell’oggetto, il tipo, la riga e il numero di riga dove si trova il testo desiderato.

Condividi se l'articolo ti è piaciuto, ci aiuterai a crescere