Има удобна функция, която да ви помогне:oidvectortypes .
SELECT format('%I.%I(%s)', ns.nspname, p.proname, oidvectortypes(p.proargtypes))
FROM pg_proc p INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid);
показва всички функции с аргументи. Можете да адаптирате този format заклинание, за да генерирате всякакви желани изрази и, ако желаете, LOOP над него, за да подадете генерирания израз в EXECUTE в PL/PgSQL.
Кредит към Leo Hsu и Regina Obe в Postgres Онлайн
за посочване на oidvectortypes . Писах подобни функции и преди, но използвах сложни вложени изрази, от които тази функция се отървава.
Обърнете внимание, че в този случай изобщо не трябва да правите персонализирано генериране на SQL , обаче. Просто използвайте GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA myschema TO ...
ако използвате неясно скорошен PostgreSQL.