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.