PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak uzyskać listę funkcji w bazie danych w PostgreSQL wraz z jej parametrami?

Jest przydatna funkcja, która może ci pomóc: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);

pokazuje wszystkie funkcje z argumentami. Możesz dostosować ten format inkantacja do generowania dowolnych instrukcji, a jeśli chcesz, LOOP nad nim, aby przekazać wygenerowaną instrukcję do EXECUTE w PL/PgSQL.

Kredyt dla Leo Hsu i Reginy Obe w Postgres Online za wskazanie oidvectortypes . Pisałem już podobne funkcje, ale używałem złożonych wyrażeń zagnieżdżonych, których ta funkcja eliminuje potrzebę.

Zauważ, że w tym przypadku nie musisz w ogóle tworzyć niestandardowego kodu SQL , chociaż. Wystarczy użyć GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA myschema TO ... jeśli korzystasz z nieco nowego PostgreSQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zarządzanie PostgreSQL Commitfest

  2. Wielokrotne wywołanie funkcji zwracającej zestaw z argumentem tablicowym

  3. Blokada odczytu wiersza PostgreSQL

  4. wyzwalacz postgresql w kolumnie tsvector otrzymuje błąd:kolumna nie istnieje

  5. Walidacja unikatowości w bazie danych, gdy walidacja ma warunek na innej tabeli