sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur får man listan över funktioner i databasen i PostgreSQL tillsammans med dess parametrar?

Det finns en praktisk funktion som hjälper 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);

visar alla funktioner med argument. Du kan anpassa det format besvärjelse för att generera önskade uttalanden, och om du vill, LOOP över den för att mata den genererade satsen till EXECUTE i PL/PgSQL.

Tack till Leo Hsu och Regina Obe på Postgres Online för att peka ut oidvectortypes . Jag skrev liknande funktioner förut, men använde komplexa kapslade uttryck som den här funktionen gör sig av med behovet av.

Observera att i det här fallet behöver du inte göra någon anpassad SQL-generering alls , fastän. Använd bara GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA myschema TO ... om du är på en vagt ny PostgreSQL.



  1. Ta bort konstiga tecken (A med hatt) från SQL Server varchar-kolumnen

  2. Hur man fortsätter medan loop efter undantag höjt i SQL

  3. Hur man förbättrar prestanda för SQLite-databas för Android

  4. Hur man importerar CSV-fil till MySQL-tabell