Oto trzy opcje wyszczególnienia wszystkich funkcji w bazie danych PostgreSQL.
information_schema.routines Zobacz
Widok ten zawiera wszystkie funkcje i procedury w bieżącej bazie danych, do których aktualny użytkownik ma dostęp (poprzez bycie właścicielem lub posiadanie uprawnień).
Oto przykład zwracania listy funkcji:
SELECT
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
AND
routine_schema = 'public';
W tym przykładzie działa tylko z public zwracany jest schemat. W razie potrzeby możesz dodać więcej kolumn.
pg_proc Katalog
pg_catalog.pg_proc katalog przechowuje informacje o funkcjach, procedurach, funkcjach agregujących i funkcjach okien.
Możemy dołączyć do tego za pomocą pg_catalog.pg_namespace katalog, aby filtrować wyniki tylko do procedur z public przestrzeń nazw:
SELECT
n.nspname,
p.proname
FROM
pg_catalog.pg_namespace n
JOIN
pg_catalog.pg_proc p ON
p.pronamespace = n.oid
WHERE
p.prokind = 'f'
AND
n.nspname = 'public';
Przefiltrowaliśmy do prokind z f aby ograniczyć wyniki tylko do normalnych funkcji.
Możliwe wartości to f dla normalnej funkcji, p dla procedury, a dla funkcji agregującej lub w dla funkcji okna.
\df Polecenie
Używając psql, możemy użyć \df polecenie:
\df
Domyślnie zwraca to tylko obiekty utworzone przez użytkownika. Możesz alternatywnie podać wzorzec lub S modyfikator, aby uwzględnić obiekty systemowe.
Oto przykład podania wzorca:
\df *key*
Ten przykład zawęża wyniki tylko do tych funkcji/procedur z tekstem key w ich imieniu.
Należy zauważyć, że to polecenie zwraca również procedury składowane. Typ procedury (np. func , proc ) jest wymieniony w type kolumna w wyniku.