Eliminare gli spazi superflui da una stringa su PL/SQL

Come ripulire un campo di testo dai vuoti di troppo su Oracle

Lavorare con un database pieno di dati sporchi è all’ordine del giorno, e prima di elaborarli è necessario eseguire una pulizia di quelli che stiamo per utilizzare.

Ci ritroviamo nella situazione di dover ripulire un campo di testo, che sia un CHAR o un VARCHAR dagli spazi di troppo. Ovvero le stringhe che ci ritroviamo a dover ottimizzare sono come questa

variabile := '    correggiamo   questo  campo         di  testo   ';

Per correggere gli spazi prima e dopo l’intera stringa possiamo usare la funzione nativa TRIM()

variabile := TRIM(variabile);
// variabile varrà 'correggiamo   questo  campo         di  testo'

ma per correggere gli spazi intermedi dovremo utilizzare una regexp, che andrà ad individuare tutti gli spazi consecutivi superiori ad 1, sostituendoli con uno spazio solo. Precisamente

variabile := REGEXP_REPLACE(variabile , '[[:space:]]+', ' ');
// variabile varrà 'correggiamo questo campo di testo'

Se vogliamo fare una prova massiva di funzionamento, possiamo eseguire questa query sulla ALL_SOURCE che andrà a visualizzare tutti i source del database con il testo non normalizzato, e la rispettiva normalizzazione

SELECT T.*, 
       TRIM(REGEXP_REPLACE(TEXT, '[[:space:]]+', ' ')) TEXT_WITHOUT_SPACE
  FROM ALL_SOURCE T
ORDER BY 1, 2, 3, 4;
Condividi se l'articolo ti è piaciuto, ci aiuterai a crescere

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 *