Zde jsou tři možnosti pro výpis všech uložených procedur v databázi Postgres.
information_schema.routines Zobrazit
Tento pohled obsahuje všechny funkce a procedury v aktuální databázi, ke kterým má aktuální uživatel přístup (jako vlastník nebo nějaké oprávnění).
Zde je příklad vrácení seznamu uložených procedur:
SELECT
routine_schema,
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'PROCEDURE';
V případě potřeby můžete přidat více sloupců. Definici procedury můžete získat pomocí routine_definition sloupec.
pg_proc Katalog
pg_catalog.pg_proc katalog ukládá informace o funkcích, procedurách, agregačních funkcích a funkcích oken.
Můžeme se k tomu připojit pomocí pg_catalog.pg_namespace katalogu filtrovat výsledky pouze na procedury s public jmenný prostor:
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';
Filtrovali jsme na prokind z p omezit výsledky na uložené procedury.
Možné hodnoty jsou f pro normální funkci p pro proceduru a pro agregační funkci nebo w pro funkci okna.
Můžete přidat p.prosrc sloupec, abyste získali definici procedury. Nebo můžete předat p.oid do pg_get_functiondef() funkce. Tato funkce vytvoří CREATE OR REPLACE PROCEDURE příkaz pro uloženou proceduru.
\df Příkaz
Při použití psql můžeme použít \df příkaz:
\df
Ve výchozím nastavení vrací pouze objekty vytvořené uživatelem. Alternativně můžete zadat vzor nebo S modifikátor pro zahrnutí systémových objektů.
Zde je příklad poskytnutí vzoru:
\df *album*
Tento příklad zužuje výsledky pouze na funkce/procedury s textem album jejich jménem.
Všimněte si, že tento příkaz také vrací funkce. Typ rutiny (např. func , proc ) je uveden v type sloupec ve výstupu.