Use variable set by psql meta-command inside of DO block

后端 未结 2 658
生来不讨喜
生来不讨喜 2020-12-11 06:45

Here\'s what I would like to do:

\\set values foo,bar,baz

DO $$
DECLARE
    value  TEXT;
    values TEXT[] := string_to_array(:\'values\', \',\');
BEGIN
            


        
2条回答
  •  抹茶落季
    2020-12-11 07:21

    Was able to take advantage of this solution:

    • Passing argument to a psql procedural script

    Where I set the variable as such and retrieve it with current_setting()

    \set values foo,bar,baz
    SET vars.values TO :'values';
    
    DO $$
    DECLARE
        value  TEXT;
        values TEXT[] := string_to_array(current_setting('vars.values'), ',');
    BEGIN
        FOREACH value IN ARRAY values LOOP
            RAISE NOTICE 'v: %', value;
        END LOOP;
    END $$ LANGUAGE plpgsql
    

提交回复
热议问题