Página 1 de 1

Copiar sentencia de SQL a un archivo

NotaPublicado: 2015-12-22 10:57 @498
por seafree
Saludos, requiero copiar el resultado de una sentencia SQL a un archivo pero me arroja error porque al parecer no está bien la sintaxis. Les agradeceré me indiquen la sentencia correcta:

COPY (select * from c_equipos order by clase,id_tipo_compon,nombre_equipo) TO '/var/lib/pgsql/data/test.copy';

El error que envía es:
ERROR: error de sintaxis en o cerca de «(» at character 6
LINE 1: COPY (select * from c_equipos order by clase,id_tipo_compon

Gracias.

Re: Copiar sentencia de SQL a un archivo

NotaPublicado: 2015-12-23 06:39 @319
por explorer
Creo que te refieres a un PostgreSQL.

En la página de manual de COPY ... TO ... se indica que el primer argumento de COPY debe ser una tabla o una selección (select) de tablas, no una selección de registros.

Para guardar cualquier resultado (por ejemplo en csv), te vale con redirigir la salida con el comando \o:

select * from c_equipos order by clase,id_tipo_compon,nombre_equipo \o /var/lib/pgsql/data/test.copy

Una opción muy buena es usar el comando psql desde la línea de comandos:

psql -d base_de_datos -t -A -F"," -c "select * from c_equipos order by clase,id_tipo_compon,nombre_equipo" > /var/lib/pgsql/data/test.csv

Re: Copiar sentencia de SQL a un archivo

NotaPublicado: 2015-12-23 09:40 @444
por seafree
Gracias, onion.

Re: Copiar sentencia de SQL a un archivo

NotaPublicado: 2015-12-23 10:11 @466
por seafree
Lo siento, me equivoque de nombre. explorer: eres único.

Gracias y mil disculpas.