PL/PGSQL - dynamic variable names - Mailing list pgsql-general

From Ben Carbery
Subject PL/PGSQL - dynamic variable names
Date
Msg-id BANLkTik2X1u_2mXofk_sRghbXNsEa4by1A@mail.gmail.com
Whole thread Raw
Responses Re: PL/PGSQL - dynamic variable names
List pgsql-general
Hi,

I am trying to EXECUTE .. INTO a variable that I want to be dynamically named.

    stuff := '{a,b,c,d}';

    FOR i IN 1..4 LOOP
        thing := stuff[i];

        -- stuff_a, stuff_b etc are functions - substitution works here
        exec_string := 'SELECT stuff_' || thing || '(''' || arg1 || ''',''' || arg2 || ''');';

        -- thing not substituted
        -- value of thing above is replaced on each iteration rather than assigning result into variables a,b,c,d
        EXECUTE exec_string INTO thing;

    END LOOP;

The variable names always seems to be interpreted literally though. Is there a way to make this work in PL/PGSQL?

Of course it would be nice if EXECUTE supported 'SELECT INTO' :)

cheers,

Ben

pgsql-general by date:

Previous
From: Rich Shepard
Date:
Subject: Re: DROP TABLE Appears to Fail [SOLVED]
Next
From: Rob Sargent
Date:
Subject: Re: PL/PGSQL - dynamic variable names