Voici trois options pour répertorier toutes les fonctions d'une base de données PostgreSQL.
Les information_schema.routines
Afficher
Cette vue contient toutes les fonctions et procédures de la base de données actuelle auxquelles l'utilisateur actuel a accès (en étant le propriétaire ou en ayant certains privilèges).
Voici un exemple de renvoi d'une liste de fonctions :
SELECT
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
AND
routine_schema = 'public';
Dans cet exemple, ne fonctionne qu'avec le public
schéma sont retournés. N'hésitez pas à inclure plus de colonnes si nécessaire.
Le pg_proc
Catalogue
Le pg_catalog.pg_proc
catalogue stocke des informations sur les fonctions, les procédures, les fonctions d'agrégation et les fonctions de fenêtre.
Nous pouvons joindre cela avec le pg_catalog.pg_namespace
catalogue pour filtrer les résultats aux seules procédures avec le public
espace de noms :
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';
Nous avons filtré sur un prokind
de f
pour limiter les résultats aux fonctions normales.
Les valeurs possibles sont f
pour une fonction normale, p
pour une procédure, a
pour une fonction d'agrégation, ou w
pour une fonction de fenêtre.
Le \df
Commande
Lors de l'utilisation de psql, nous pouvons utiliser le \df
commande :
\df
Par défaut, cela renvoie uniquement les objets créés par l'utilisateur. Vous pouvez alternativement fournir un motif ou le S
modificateur pour inclure les objets système.
Voici un exemple de fourniture d'un modèle :
\df *key*
Cet exemple réduit les résultats aux seules fonctions/procédures avec le texte key
en leur nom.
Notez que cette commande renvoie également des procédures stockées. Le type de routine (par exemple func
, proc
) est listé dans un type
colonne dans la sortie.