sql >> Databáze >  >> RDS >> PostgreSQL

Jak získat seznam funkcí v databázi v PostgreSQL spolu s jejími parametry?

Existuje užitečná funkce, která vám pomůže: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);

zobrazuje všechny funkce s argumenty. Tento format můžete upravit zaklínání pro generování libovolných příkazů, a pokud chcete, LOOP přes něj, aby se vygenerovaný příkaz vložil do EXECUTE v PL/PgSQL.

Poděkování Leo Hsu a Regina Obe na Postgres Online za upozornění na oidvectortypes . Napsal jsem podobné funkce dříve, ale použil jsem složité vnořené výrazy, které tato funkce nepotřebuje.

Všimněte si, že v tomto případě nemusíte vůbec provádět žádné vlastní generování SQL , ačkoli. Stačí použít GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA myschema TO ... pokud používáte nejasně aktuální PostgreSQL.



  1. Laravel Migration Error:Chyba syntaxe nebo narušení přístupu:1071 Zadaný klíč byl příliš dlouhý; maximální délka klíče je 767 bajtů

  2. Upgrade na MySQLi – stejně snadné jako výměna mysql za mysqli?

  3. BEGIN - END blokové atomické transakce v PL/SQL

  4. Jak vytvořit index na LOWER (users.username) v Rails (pomocí postgres)