Re: Script generation through psql

From: Mauricio Fernandez <mmauricio(dot)fernandez(at)gmail(dot)com>
To: Roland Müller <rolmur(at)gmail(dot)com>
Cc: Pgsql-admin <pgsql-admin(at)lists(dot)postgresql(dot)org>
Subject: Re: Script generation through psql
Date: 2025-10-22 12:03:00
Message-ID: CAMdfv4XctGzubbgkASHRdDG1jMjwRrOesQpYJczACdcTingrTw@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi Roland, thanks for the answer, I will investigates de \copy command. For
know, I could resolve with the following call in the bash script:

Using -Atq and PAGER="" the desired output was as expected

export PAGER=""
psql *-Atq* -U moodle -d lms4x -f ./src.sql > $UPD_FILE 2>&1

regards Mauricio Fernández

El mié, 22 oct 2025 a las 1:23, Roland Müller (<rolmur(at)gmail(dot)com>) escribió:

> Hello,
>
> the \copy command should be able to output only the results of some
> query. This command is client side. Thus \copy runs in psql and uses the
> server side COPY .
>
> https://www.postgresql.org/docs/17/app-psql.html
>
> BR
> Roland
>
>
> Mauricio Fernandez <mmauricio(dot)fernandez(at)gmail(dot)com> ezt írta (időpont:
> 2025. okt. 21., K 23:52):
>
>> Hi community
>>
>> I'm trying to generate an script file as the output from psql script been
>> called from linux bash, and I've two issues:
>>
>> The bash call is like:
>>
>> psql -U myusr-d mydb -f ./scr.sql > $UPD_FILE 2>&1
>>
>> $ cat scr.sql
>> \set vl_id 19
>> \set ECHO none
>> \pset tuples_only on
>> \pset pager off
>>
>> select script_drop from proceso_actualiza_fdw where id = :vl_id;
>>
>> select script_import from proceso_actualiza_fdw where id = :vl_id;
>>
>> \q
>>
>> 1.- The output file is like :
>> *Pager usage is off.*
>> -- *+*
>> -- BORRADO DE TABLAS MODIFICADAS +
>>
>> How can I eliminate "*Pager usage is off." *and the *"+" *at the end of
>> each row?
>>
>> 2. If in the psql script I want to pass variable values from an anonymous
>> block to the rest of the script, how can I proceed?. For example
>>
>> DO $$
>> DECLARE
>> vl_id integer;
>> BEGIN
>> -- vl_id is set inside the procedure
>> call my_procedure(*vl_id*);
>> END $$;
>>
>> select script_drop from proceso_actualiza_fdw where id = :*vl_id*;
>>
>> select script_import from proceso_actualiza_fdw where id = :*vl_id*;
>>
>> The script output file is the result set from the queries.
>>
>> I've tried with \set myvar but this doesn't works
>>
>> Thank you very much in advance
>>
>> kind regards
>>
>> Mauricio Fernández
>>
>

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Ishan Arunkumar Joshi 2025-10-22 12:21:30 does BUG #18942 and BUG #18938 solution available in Pg16 latest release 16.10
Previous Message Mauricio Fernandez 2025-10-22 11:59:26 Re: Script generation through psql