Значение переменной в операторе исполнения функции - PullRequest
0 голосов
/ 03 мая 2018

Мне нужно извлечь текущую базу данных и передать ее в запрос для создания пользователя, чтобы он создал пользователя в группе с использованием текущей базы данных.

    CREATE OR REPLACE FUNCTION public.create_dbuser(
    v_username NAME,
    v_password TEXT)
RETURNS smallint AS
$BODY$
DECLARE
BEGIN
    EXECUTE FORMAT('CREATE ROLE "%I" IN GROUP “%I”_group LOGIN 
PASSWORD ''%I''', v_username, current_database(), v_password);
    RETURN 1;
    -- Simple Exception
EXCEPTION
    WHEN others THEN
        RETURN 0;
END;
$BODY$
LANGUAGE plpgsql STRICT VOLATILE SECURITY DEFINER
COST 100;
...