From: | "Dirschel, Steve" <steve(dot)dirschel(at)thomsonreuters(dot)com> |
---|---|
To: | "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Trying to dynamically create a procedure |
Date: | 2025-03-26 20:27:29 |
Message-ID: | CH0PR03MB6034C83799B64677E3D4941AFAA62@CH0PR03MB6034.namprd03.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
I have the need to dynamically create a procedure. Here is a simple procedure:
create or replace procedure junk.test_proc()
LANGUAGE plpgsql
AS $$
declare
v_cnt integer := 0;
begin
raise notice 'v_cnt is %', v_cnt;
end $$;
That creates and runs fine.
Here I’m trying to create it inside PL/pgSQL block (yes there is nothing dynamic below but the real code will have parts of the procedure that needs to have code dynamically generated):
DO $$
BEGIN
EXECUTE 'create or replace procedure junk.test_proc() ' ||
'LANGUAGE plpgsql ' ||
'AS $$ ' ||
'declare ' ||
' v_cnt integer := 0; ' ||
'begin ' ||
' raise notice 'v_cnt is %', v_cnt; ' ||
'end $$';
END;
$$
It throws this error:
ERROR: syntax error at or near "$$
DO $$"
LINE 1: $$
^
dbtest=>
dbtest=> END;
WARNING: there is no transaction in progress
COMMIT
dbtest=>
dbtest=> $$
I think the problem has to do with having AS $$ and END $$ with the 2 $’s. I’m not sure if there is different syntax I can use outside the $$ or if there is something I should use in the PL/pgSQL to escape those $$ to get this to work.
Any help would be appreciated.
Thanks
This e-mail is for the sole use of the intended recipient and contains information that may be privileged and/or confidential. If you are not an intended recipient, please notify the sender by return e-mail and delete this e-mail and any attachments. Certain required legal entity disclosures can be accessed on our website: https://www.thomsonreuters.com/en/resources/disclosures.html
From | Date | Subject | |
---|---|---|---|
Next Message | Christophe Pettus | 2025-03-26 20:30:02 | Re: Trying to dynamically create a procedure |
Previous Message | Karsten Hilbert | 2025-03-26 18:30:13 | Re: Q on SELECT column list pushdown from view to table |