75 votes

Liste des fonctions stockées à l'aide d'un tableau dans PostgreSQL

Juste un rapide et simple question: dans PostgreSQL, comment faites-vous la liste des noms de toutes les fonctions/procédures stockées à l'aide d'un tableau en utilisant simplement une instruction SELECT, si possible? Si un simple SELECT est insuffisant, je peux le faire avec une fonction stockée.

Ma question est, je pense, est un peu similaire à cette autre question, mais cette autre question est pour SQL Server 2005:
http://stackoverflow.com/questions/119679/list-of-stored-procedure-from-table

(facultatif) Pour cette question, comment faites-vous dans la liste des déclencheurs et des contraintes qui utilisent la même table de la même manière?

100voto

Quassnoi Points 191041
SELECT  proname
FROM    pg_catalog.pg_namespace n
JOIN    pg_catalog.pg_proc p
ON      pronamespace = n.oid
WHERE   nspname = 'public'

18voto

davidwhthomas Points 91
SELECT  proname, prosrc
FROM    pg_catalog.pg_namespace n
JOIN    pg_catalog.pg_proc p
ON      pronamespace = n.oid
WHERE   nspname = 'public';

10voto

Matt Dressel Points 1009

Même chose que @quassnoi et @davidwhthomas, sauf que j'ai ajouté les noms d'argument dans les:

SELECT  proname, proargnames, prosrc 
FROM    pg_catalog.pg_namespace n
JOIN    pg_catalog.pg_proc p
ON      pronamespace = n.oid
WHERE   nspname = 'public';

Si le but de la liste des fonctions est de les nettoyer ou de itérer une nouvelle fonction de l'évolution du params liste, vous aurez souvent besoin de déplacer les fonctions de:

DROP FUNCTION <name>(<args>);

En ajoutant proargnames, je suis en mesure de construire applicable nom de la fonction pour le drop.

En outre, il est agréable de voir une image plus complète lors de l'évaluation des fonctions.

5voto

Lukáš Lalinský Points 22537

Vous pouvez utiliser la norme information_schema schéma pour obtenir des métadonnées à propos de votre base de données (c'est dans le standard SQL, donc il devrait fonctionner de la même manière dans les différents systèmes de base de données). Dans ce cas, vous souhaitez information_schema.routines.

4voto

Michał Niklas Points 15907

Jetez un oeil à ma recette. Il lit les fonctions et déclencheurs. Il est basé sur des informations provenant: de l'Extraction des MÉTA-données de PostgreSQL (INFORMATION_SCHEMA)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X