Jest przydatna funkcja, która może ci pomóc: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);
pokazuje wszystkie funkcje z argumentami. Możesz dostosować ten format inkantacja do generowania dowolnych instrukcji, a jeśli chcesz, LOOP nad nim, aby przekazać wygenerowaną instrukcję do EXECUTE w PL/PgSQL.
Kredyt dla Leo Hsu i Reginy Obe w Postgres Online
za wskazanie oidvectortypes . Pisałem już podobne funkcje, ale używałem złożonych wyrażeń zagnieżdżonych, których ta funkcja eliminuje potrzebę.
Zauważ, że w tym przypadku nie musisz w ogóle tworzyć niestandardowego kodu SQL , chociaż. Wystarczy użyć GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA myschema TO ...
jeśli korzystasz z nieco nowego PostgreSQL.