sql >> Database >  >> RDS >> PostgreSQL

Hoe krijg ik de lijst met functies in de database in PostgreSQL samen met de bijbehorende parameters?

Er is een handige functie om je te helpen: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);

toont alle functies met argumenten. Je kunt dat format aanpassen bezwering om alle gewenste uitspraken te genereren, en als je wilt, LOOP eroverheen om de gegenereerde instructie in te voeren in EXECUTE in PL/PgSQL.

Met dank aan Leo Hsu en Regina Obe bij Postgres Online voor het aanwijzen van oidvectortypes . Ik heb eerder soortgelijke functies geschreven, maar gebruikte complexe geneste expressies waardoor deze functie de noodzaak wegneemt.

Merk op dat in dit geval u helemaal geen aangepaste SQL-generatie hoeft uit te voeren , hoewel. Gebruik gewoon GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA myschema TO ... als je een vaag recente PostgreSQL gebruikt.



  1. Hoe een procentuele waarde op te slaan?

  2. MariaDB JSON_ARRAY_INSERT() uitgelegd

  3. MySQL importeer database maar negeer specifieke tabel

  4. Hoe alle kolommen in een select samen te voegen met SQL Server