Comment afficher une procédure / fonction stockée?
Disons que j'ai une ancienne fonction sans la définition originale - je veux voir ce qu'elle fait dans pg / psql mais je n'arrive pas à trouver un moyen de le faire.
en utilisant Postgres version 8.4.1
postgresql
stored-procedures
Darren
la source
la source
\df+ <function_name>
dans psql .la source
\x
méta-commande psql avant d'afficher la définition de la fonction.\x
est également utile pour afficher les résultats de requêtes contenant des enregistrements avec de longues chaînes.\ef <function_name>
dans psql. Cela donnera toute la fonction avec du texte modifiable.la source
;
<enter>
après pour exécuter le tampon.ERROR: more than one function named
Cela indique au gestionnaire de fonction comment appeler la fonction. Il peut s'agir du code source réel de la fonction pour les langages interprétés, d'un symbole de lien, d'un nom de fichier ou à peu près n'importe quoi d'autre, selon le langage d'implémentation / la convention d'appel
la source
psql
. Notez que les noms de fonction semblent être réduits.SELECT proname, prosrc, proargnames FROM pg_proc WHERE proname like '%func_name%'
. Ceci au moins sur la page 9.6. Vous pouvez obtenir le code numérique du type via la propriétéproargtypes
, mais vous devrez vous joindre à une autre table pour obtenir cela sous forme de noms.Utilisez
\df
pour lister toutes les procédures stockées dans Postgres.la source
Si quelqu'un se demande comment interroger rapidement les tables du catalogue et utiliser la
pg_get_functiondef()
fonction, voici l'exemple de requête:la source
pg_get_functiondef(p.oid) ilike '%indicator_loss%'
Vous pouvez également obtenir par phpPgAdmin si vous le configurez dans votre système,
Étape 1: Sélectionnez votre base de données
Étape 2: Cliquez sur le bouton Rechercher
Étape 3: Modifiez l'option de recherche en fonctions, puis cliquez sur Rechercher.
Vous obtiendrez la liste des fonctions définies. Vous pouvez également rechercher des fonctions par nom, en espérant que cette réponse aidera les autres.
la source
Pour voir le code complet (requête) écrit dans la procédure / les fonctions stockées, utilisez la commande ci-dessous:
pour le nom de la fonction et le nom de la procédure, n'ajoutez pas le préfixe «dbo». ou 'sys.'.
n'ajoutez pas de crochets à la fin de la procédure ou du nom de la fonction et ne transmettez pas non plus les paramètres.
utilisez le mot-clé sp_helptext, puis transmettez simplement le nom de la procédure / fonction.
utilisez la commande ci-dessous pour voir le code complet écrit pour la procédure:
utilisez la commande ci-dessous pour voir le code complet écrit pour la fonction:
la source
sp_helptext
en a pas dans postgresql.Normalement, vous utiliseriez une application de gestion de base de données comme pgAdmin , accédez à l'objet qui vous intéresse et cliquez avec le bouton droit de la souris sur "script as create" ou similaire.
Essayez-vous de faire cela ... sans application de gestion?
la source