Cercare in Oracle il testo contenuto nelle tabelle

Vedremo come eseguire la ricerca di un testo contenuto in tutte le tabelle del database

oracle search

Qual è lo scopo di oggi? Fare una ricerca all’interno del contenuto di tutte le tabelle che si trovano nel nostro database, perché a volte mi ritrovo al buio quando faccio delle analisi e alla fine scopro che il tassello mancante si trova all’interno di alcune tabelle parametriche che contengono le impostazioni che mi interessano.

Si tratta di una procedura laboriosa, in quanto si andrà a controllare il contenuto di tutte le colonne – di tutte le tabelle – di tutti gli owner del nostro database, percui consiglio di farla proprio quando credete che serve. Il database su cui lavoro è enorme, e il lancio di questa procedura impiega circa 4 ore per terminare la ricerca.

Per alleggerire la procedura (azione necessaria) andremo ad escludere tutte le tabelle di sistema e tutte le colonne che non contengono valori alfanumerici. Inoltre, visto il tempo necessario per l’esecuzione, andremo a memorizzare il risultato di ogni ricerca all’interno di una tabella così da andare a consultarla, quando ci serve, per una ricerca fatta da qualche giorno, senza dover lanciare ogni volta la procedura e perdere altro tempo.

Impostiamo l’ambiente per la ricerca

Il primo passaggio da fare è la creazione della sequence e della tabella di destinazione. Posizioniamoci sullo schema su cui vogliamo creare il tutto. Utilizzare questo script per la loro creazione/

facendo attenzione a sostituire il NOME_SCHEMA, NOME_SEQUENCE e NOME_TABELLA con i nomi che interessano a noi.

Dopo aver creato i due oggetti precedenti dobbiamo andare a creare la procedure che eseguirà la nostra ricerca, usando questo script/

facendo attenzione a sostituire anche qui il NOME_SCHEMA, NOME_SEQUENCE e NOME_TABELLA insieme al NOME_PROCEDURE.

Una volta compilato il tutto non ci resta che eseguire la ricerca.

Eseguiamo la ricerca

Attenzione: Queste sono istruzioni valide in PL/SQL, non ho Toad sotto mano per guidarvi nel suo utilizzo.

Aprire una finestra di Test Windows ed incollare il seguente script/

compiliamo per fargli riconoscere l’input :text. A questo punto dobbiamo valorizzare quest’input con il valore che vogliamo cercare, e lanciare la procedura.

Alla fine della procedura di ricerca ci ritroveremo, nella scheda DBMS Output tutti gli errori che si sono verificati durante la ricerca, insieme alla query che dovete eseguire per visualizzare tutti i risultati.

Ogni articolo è soggetto ad aggiornamenti, condividi se ti è piaciuto

Francesco

Fondatore e amministratore di Dummy-X dal 2007, condivido interessi, idee, progetti, e soluzioni informatiche. Non vendo prodotti, mi limito a descrivere tecnologie e a mettere a disposizione gli strumenti adatti per poter realizzare idee. Tutto ciò che scrivo è frutto della mia esperienza lavorativa e della mia voglia di imparare. Da sempre studio l'informatica in tutte le sue angolazioni (software, hardware, reti e sicurezza) e negli ultimi anni mi sono specializzato nello sviluppo di web applications. Sono sempre aperto a nuove sfide e alla ricerca e conoscenza delle nuove tecnologie.
 

Lascia un commento

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