Re: sentencia copy a cliente

From: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
To: kernel <jucabapa(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: sentencia copy a cliente
Date: 2021-02-18 09:12:25
Message-ID: CAASDfF1_K4ggGwSu2D+zKY2nQMX4tZMF=bP7QEsb0keEbXoNEA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola nuevamente, lo que te comentamos debe funcionar, ¿Intentaste ejecutar
lo que te comentamos? Desde tu máquina apuntando a tu servicio en la nube.

El jue., 18 de febrero de 2021 4:01 a. m., kernel <jucabapa(at)gmail(dot)com>
escribió:

>
> El 18/02/2021 a las 1:01, Horacio Miranda escribió:
>
>
> On 18/02/2021 8:55 am, Anthony Sotolongo wrote:
>
> Hola Kernel, como comentas puedes usar STDOUT, el cual te enviará los
> datos a tu client, por ejemplo con psql:
>
>
> psql -U postgres -h tu_server_en_la_nube -c "COPY (select * from tu_tabla)
> to STDOUT WITH CSV HEADER DELIMITER ',';" > tu_archivo.csv
>
>
> Los servidores pueden mandar email tambien.
>
> Puedes hacer esta logica si quieres en el server en la nube que es mas
> rapido ejecutar cosas locales.
>
> #!/bin/bash
>
> PGUSER=<USER>
> PGPASSWORD=<PASS>
> PGPORT=<PUERTO>
> PGDATABASE=<BASE>
> PGHOST=<HOST>
>
> psql -c "COPY (select * from tu_tabla) to STDOUT WITH CSV HEADER DELIMITER
> ',';" > /tmp/tu_archivo.csv
>
> cd /tmp # Esto solo es para evitar que en el ZIP esten los path como /tmp
> zip tu_archivo.csv.zip tu_archivo.csv
> uuencode tu_archivo.csv tu_archivo.csv | mail -s
> "export_desde_lanube_$(hostname)" algun_mail(at)domain(dot)com
>
> uuencode lo encuentras como parte del sharutils si usas algo como rpm
> puedes hacer "yum provides */uuencode"
>
> Ahora puedes hacer un sftp, o cualquier cosa que quieras para traerte el
> archivo.
>
> Si lo quieres local puedes hacer un rsync tambien, posibilidades hay
> muchas.
> Ahora si este archivo es algo que se genera para un cliente, que se envie
> un email de forma automatica creo que puede ser bien interesante.
>
>
> Saludos
>
>
> On 2/17/21 4:14 PM, kernel wrote:
>
> Hola,
>
> Necesito generar un fichero csv desde una aplicación, hasta la fecha
> llamaba a una función , la cual me ejecutaba una sentencia copy de un query
> determinado y lo sacaba a un fichero local.
>
> Si contrato algún servicio de DB en la nube no voy a poder dejar el
> fichero en local. He visto que la función copy tiene algo de stdout , pero
> no se como conectarlo son mi aplicación.
>
> El lenguaje que utilizo es 4GL , solo puedo hacer querys cuyo resultado
> lo recojo en variables
>
> me pregunto si existe alguna función en la que pueda generar un csv desde
> una consulta y me lo devuelva en un tipo de variable byte o algo asi, que
> luego yo pueda guardar donde yo quiera.
>
> no se si he sido capaz de explicarme.
>
> Gracias
>
> Un Saludo
>
> hola no se si me he explicado bien, lo que tengo en la nube no es un
> servidor, es un servicio postgresql , nada mas , por eso el problema
>
> Gracias
>
>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message kernel 2021-02-18 15:08:06 Re: sentencia copy a cliente
Previous Message kernel 2021-02-18 07:01:14 Re: sentencia copy a cliente