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.