sql >> Base de Datos >  >> RDS >> PostgreSQL

Exportación de datos que contienen saltos de línea como CSV desde PostgreSQL

Para que puedas exportar el archivo en otro servidor tienes dos opciones:

  • Crear una carpeta compartida entre los dos servidores, para que la base de datos también tenga acceso a este directorio.

COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;

  • Desencadenar la exportación desde el servidor de destino mediante STDOUT de COPY . Usando psql puede lograr esto ejecutando el siguiente comando:

psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv

EDITAR :Abordar el problema de los campos que contienen saltos de línea (\n )

En caso de que quiera deshacerse de los saltos de línea, use REPLACE función.

Ejemplo:

 SELECT E'foo\nbar';
 ?column? 
----------
 foo     +
 bar
(1 Zeile)

Eliminando el salto de línea:

SELECT REPLACE(E'foo\nbaar',E'\n','');
 replace 
---------
 foobaar
(1 Zeile)

Así que tu COPY debería verse así:

COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;