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
>
>
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? |