Ето три опции за изброяване на всички функции в PostgreSQL база данни.
information_schema.routines
Преглед
Този изглед съдържа всички функции и процедури в текущата база данни, до които текущият потребител има достъп (като е собственик или има някакви привилегии).
Ето пример за връщане на списък с функции:
SELECT
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
AND
routine_schema = 'public';
В този пример функционира само с public
схемата се връщат. Чувствайте се свободни да включите още колони, ако е необходимо.
pg_proc
Каталог
pg_catalog.pg_proc
каталог съхранява информация за функции, процедури, агрегатни функции и функции на прозореца.
Можем да се присъединим към това с pg_catalog.pg_namespace
каталог за филтриране на резултатите само до процедури с public
пространство от имена:
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';
Филтрирахме до prokind
на f
за да ограничите резултатите само до нормални функции.
Възможните стойности са f
за нормална функция, p
за процедура, a
за агрегатна функция или w
за функция на прозореца.
\df
Команда
Когато използваме psql, можем да използваме \df
команда:
\df
По подразбиране това връща само създадени от потребителя обекти. Като алтернатива можете да предоставите шаблон или S
модификатор за включване на системни обекти.
Ето пример за предоставяне на шаблон:
\df *key*
Този пример стеснява резултатите само до тези функции/процедури с текст key
на тяхно име.
Имайте предвид, че тази команда връща и съхранени процедури. Типът на рутинната програма (напр. func
, proc
) е посочен в type
колона в изхода.