Re: How to fix Execute format error?

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Joe How <huijoehow(at)gmail(dot)com>
Cc: pgsql-sql <pgsql-sql(at)lists(dot)postgresql(dot)org>
Subject: Re: How to fix Execute format error?
Date: 2021-02-05 15:01:37
Message-ID: CAFj8pRDBOw3oqHeWYdLUc-Mx+mCbNStjxL64P0h8JVBESnaJPA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi

pá 5. 2. 2021 v 14:46 odesílatel Joe How <huijoehow(at)gmail(dot)com> napsal:

> Dear all,
>
> I have a query in Postgres like below:
>
> EXECUTE FORMAT(
> $$ SELECT * FROM %I.%I CROSS JOIN LATERAL json_to_record(%I::json) AS rs(%s); $$,
> 'public',
> 'vehicles',
> 'column_a',
> array_to_string(
> (SELECT ARRAY(SELECT DISTINCT col FROM vehicles CROSS JOIN LATERAL json_object_keys(column_a::json) AS t(col) ORDER BY col)), ' text , '
> ) || ' text'
> );
>
> I got an error message when I run it in pgadmin:
> ERROR: prepared statement "format" does not exist SQL state: 26000
>
> Any advice on how to fix it? Thanks
>

What you want to do?

If you want to run dynamic statement, then you should be in a PLpgSQL
environment. If you want to run a prepared statement, then you should use
PREPARE statement first.

Attention: Inside Postgres you can use two different EXECUTE statements -
inside SQL - EXECUTE runs prepared statement, and inside PLpgSQL - EXECUTE
runs dynamic query.

Regards

Pavel

>
> --
> Best Regards,
> Joe
>
>

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Joe How 2021-02-05 17:40:59 Re: How to fix Execute format error?
Previous Message Joe How 2021-02-05 11:22:55 How to fix Execute format error?