Re: Script generation through psql

Поиск
Список
Период
Сортировка
От Mauricio Fernandez
Тема Re: Script generation through psql
Дата
Msg-id CAMdfv4XctGzubbgkASHRdDG1jMjwRrOesQpYJczACdcTingrTw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Script generation through psql  (Roland Müller <rolmur@gmail.com>)
Список 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@gmail.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 .


BR
Roland 


Mauricio Fernandez <mmauricio.fernandez@gmail.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

В списке pgsql-admin по дате отправления: