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.
Comments are closed.