Re: sentencia copy a cliente

From: kernel <jucabapa(at)gmail(dot)com>
To: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: sentencia copy a cliente
Date: 2021-02-18 07:01:14
Message-ID: 90be9b4a-ba05-0a89-f25b-6b88d3258dbc@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


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 Anthony Sotolongo 2021-02-18 09:12:25 Re: sentencia copy a cliente
Previous Message Horacio Miranda 2021-02-18 00:01:37 Re: sentencia copy a cliente