Der er en praktisk funktion til at hjælpe dig: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);
viser alle funktioner med argumenter. Du kan tilpasse det format
besværgelse for at generere eventuelle ønskede udsagn, og hvis du vil, LOOP
over det for at føre den genererede sætning ind i EXECUTE
i PL/PgSQL.
Kredit til Leo Hsu og Regina Obe hos Postgres Online
for at påpege oidvectortypes
. Jeg skrev lignende funktioner før, men brugte komplekse indlejrede udtryk, som denne funktion fjerner behovet for.
Bemærk, at i dette tilfælde behøver du slet ikke at lave nogen tilpasset SQL-generering , selvom. Bare brug GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA myschema TO ...
hvis du er på en vagt ny PostgreSQL.