あなたを助けるための便利な関数があります: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で。
PostgresのLeoHsuとReginaObeの功績オンライン
oidvectortypes
を指摘するため 。以前に同様の関数を作成しましたが、この関数が必要としない複雑なネストされた式を使用しました。
この場合、カスタムSQL生成を行う必要はまったくありませんことに注意してください。 、 けれど。 GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA myschema TO ...
漠然と最近のPostgreSQLを使用している場合。