Oto trzy opcje wyszczególnienia wszystkich procedur składowanych w bazie danych Postgres.
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 procedur składowanych:
SELECT
routine_schema,
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'PROCEDURE';
W razie potrzeby możesz dodać więcej kolumn. Możesz uzyskać definicję procedury za pomocą routine_definition
kolumna.
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 = 'p'
AND
n.nspname = 'public';
Przefiltrowaliśmy do prokind
z p
aby ograniczyć wyniki do procedur składowanych.
Możliwe wartości to f
dla normalnej funkcji, p
dla procedury, a
dla funkcji agregującej lub w
dla funkcji okna.
Możesz dodać p.prosrc
kolumna, aby uzyskać definicję procedury. Możesz też przekazać p.oid
kolumna do pg_get_functiondef()
funkcjonować. Ta funkcja wygeneruje CREATE OR REPLACE PROCEDURE
instrukcja dla procedury składowanej.
\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 *album*
Ten przykład zawęża wyniki tylko do tych funkcji/procedur z tekstem album
w ich imieniu.
Zauważ, że to polecenie zwraca również funkcje. Typ procedury (np. func
, proc
) jest wymieniony w type
kolumna w wyniku.