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