Re: PL/pgSQL doesn't support variables in queries?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "J(dot)A(dot)" <postgresql(at)world-domination(dot)com(dot)au>
Cc: Erik Wienhold <ewie(at)ewie(dot)name>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: PL/pgSQL doesn't support variables in queries?
Date: 2023-05-03 13:28:55
Message-ID: 2955822.1683120535@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"J.A." <postgresql(at)world-domination(dot)com(dot)au> writes:
> I must admit, I did try doing something like you suggested Erik. I tried
> things like:

> DO $$
> DECLARE
> v_application_id uuid;
> BEGIN
> SELECT application_id INTO v_application_id FROM applications
> WHERE code = 'pg-test-cc';

> SELECT * FROM application_foo WHERE application_id =
> v_application_id;
> -- more SELECT * FROM child tables....

> END $$;

> but that never worked, with warning:

> ERROR: query has no destination for result data HINT: If you want to
> discard the results of a SELECT, use PERFORM instead. CONTEXT: PL/pgSQL
> function inline_code_block line 7 at SQL statement SQL state: 42601

Note that that is complaining about your second try, not your first.
You need to put the result of the SELECT somewhere. INTO is fine
if it's a single-row result. Otherwise, consider looping through
the result with a FOR loop. Again, there are plenty of examples
in the manual.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Sergey Cherevko 2023-05-03 13:54:08 unknown postgres ssl error "could not accept SSL connection: Success" and timeout
Previous Message Erik Wienhold 2023-05-03 13:26:22 Re: PL/pgSQL doesn't support variables in queries?