Re: Script generation through psql - Mailing list pgsql-admin

From Mauricio Fernandez
Subject Re: Script generation through psql
Date
Msg-id CAMdfv4VJiDXnD_=ngHh-3yUrT4K+8qA1_FVEVOy=smMg8Ri-sQ@mail.gmail.com
Whole thread Raw
In response to Re: Script generation through psql  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-admin
Hi David, thanks for answer..I could resolve my issue doing the following in the script

call actualiza_fdw(null) ;\gset

select script_drop from proceso_actualiza_fdw where id = :x_id;

select script_import from proceso_actualiza_fdw where id = :x_id;

\q

The procedure declaration is: actualiza_fdw(OUT x_id integer)

regards

Mauricio Fernández

El mié, 22 oct 2025 a las 7:54, David G. Johnston (<david.g.johnston@gmail.com>) escribió:
On Tuesday, October 21, 2025, Mauricio Fernandez <mmauricio.fernandez@gmail.com> wrote:

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 $$;

You’d have to do something like:

Execute format(‘set script.varname=%L’, value)

Within the DO block then you can do:

Select current_value(‘script.varname’) as psql_var \gexec

Outside of it.

A temporary table works too.

David J.

pgsql-admin by date:

Previous
From: Mauricio Fernandez
Date:
Subject: Re: Script generation through psql
Next
From: Tom Lane
Date:
Subject: Re: does BUG #18942 and BUG #18938 solution available in Pg16 latest release 16.10