Buscar en el Blog

viernes, 2 de agosto de 2013

Cómo eliminar un salto de línea LF(Line feed, '\n', 0x0A, 10 en decimal) en los datos de una columna de PostgreSQL

Muchas veces nos encontramos con columnas de tipo de dato VARCHAR con valores que poseen saltos de línea (LF - Line Feed). Por ejemplo, supongamos que se tiene la siguiente tabla de base de datos, creada con el siguiente script SQL:

CREATE TABLE TABLA (COLUMNA VARCHAR(128));
INSERT INTO TABLA VALUES ('MAURICIO MURILLO' || CHR(10) || 'ingmmurillo');
COMMIT;
SELECT * FROM TABLA;

Al consultar el registro de la tabla se obtendrá lo siguiente:








Como se puede observar, los datos de la columna COLUMNA contienen un salto de línea representado por /n. Para reemplazar los saltos de línea que se encuentren en la cadena de texto por un espacio en blanco se usa la función regexp_replace como se muestra a continuación:

select columna, regexp_replace(columna, E'[\\n\\r]+', ' ', 'g' ) as columna_nueva from tabla;


El script SQL anterior me permitirá reemplazar los saltos de línea por espacios en blanco.


2 comentarios:

  1. Me pasé todo un día tratando de quitar el enter dentro de un texto, porque al exportar a csv me creaba filas de más, hasta que leí este post. Muchas gracias. Funcionó perfecto

    ResponderEliminar