Eliminare/Sostituire i caratteri CR LF in SQL


Nei vari programmi che mi capita di sviluppare accade che si richieda all’utente di inserire una nota o un commento all’interno di un text area, quando viene scritto sul database, se l’utente ha inserito dei caratteri di invio nel DB vengono scritti i due caratteri di CR ed LF (Carriage Return e Line Feed).

Prendiamo un forum come esempio. I caratteri di invio, al momento della visualizzazione su web, se li si lascia così non vengono visualizzati, difatto il TAG per far andare a capo in HTML è <br>, abbiamo quindi bisogno di convertirli con il tag summenzionato.
Abbiamo a disposizione 2 possibilità:
– Farlo da linguaggio di programmazione (PHP, ASP, JSP…..)
– Farlo fare direttamente al DB

Siccome stiamo parlando di SQL troviamo una soluzione alla seconda:
la funzione replace, che è presente sia in MySQL che in Oracle, permette di sostituire un carattere od una serie di caratteri all’inetrno di una stringa con un’altro carattere o altra serie di caratteri.
Sintassi:
Replace(colonna_testo,stringa_ricerca,stringa_sost)

Nel nostro caso allora che dobbiamo sostituire CR LF con <br> il nostro SQL diventa così:

SELECT replace(colonna_testo,chr(13)||chr(10),'<br>’) as colonna_con_br
FROM tabella
WHERE clausole di ricerca

Questa funzione torna utile anche quando dobbiamo avitare un a capo su excel mentre sitamo utilizzando lo strumento msQuery integrato nel pacchetto di office.

Eliminare/Sostituire i caratteri CR LF in SQL ultima modifica: 2005-11-25T00:00:00+00:00 da Enrico

Comments are closed.