Ada fungsi praktis untuk membantu Anda: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);
menunjukkan semua fungsi dengan argumen. Anda dapat menyesuaikan format itu mantra untuk menghasilkan pernyataan yang diinginkan, dan jika Anda suka, LOOP di atasnya untuk memasukkan pernyataan yang dihasilkan ke dalam EXECUTE di PL/PgSQL.
Kredit untuk Leo Hsu dan Regina Obe di Postgres Daring
untuk menunjukkan oidvectortypes . Saya menulis fungsi serupa sebelumnya, tetapi menggunakan ekspresi bersarang kompleks yang tidak diperlukan oleh fungsi ini.
Perhatikan bahwa dalam hal ini Anda tidak perlu melakukan pembuatan SQL kustom sama sekali , meskipun. Cukup gunakan GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA myschema TO ...
jika Anda menggunakan PostgreSQL baru-baru ini.