Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 30/04/2020 15:53:16
- Mlan2
- Membre
Extraction du code d'un objet de type SQL
Bonjour à tous,
Je cherche, pour une analyse de l'environnement, à ressortir le code source des objets SQL de type fonction ou trigger.
Pour les objets de type fonction, j'utilise la fonction : pg_get_functiondef à laquelle je fournis en paramètre l'oid de la fonction, et qui me renvoie le code source de ma fonction. C'est bien le résultat que j'attendais.
Pour les objets de type trigger, j'utilise la fonction : pg_get_triggerdef à laquelle je fournis en paramètre l'oid du trigger, mais je n'obtiens aucun résultat (null)
Le problème est t'il connu ? ou bien il faut procéder différemment ?
Tout éclairage sera le bienvenu.
D'avance merci.
Cordialement.
Hors ligne
#2 30/04/2020 18:18:59
- rjuju
- Administrateur
Re : Extraction du code d'un objet de type SQL
C'est censé fonctionner normalement. Pouvez-vous fournir plus de détail, notamment les lignes associées dans pg_trigger et pg_proc ?
Julien.
https://rjuju.github.io/
Hors ligne
#3 30/04/2020 18:49:37
- Mlan2
- Membre
Re : Extraction du code d'un objet de type SQL
Merci du retour.
Je viens de me rendre compte que je ne passais pas en paramètre de la fonction, l'oid du trigger mais le tgrelid de la table pg_trigger.
En passant bien l'oid du trigger, la fonction renvoie bien un résultat comme ci-dessous :
[ code ]
select pg_get_triggerdef ('32913'::OID);
pg_get_triggerdef
---------------------------------------------------------------------------------------------------------------------------
CREATE TRIGGER trg_tabbdd AFTER INSERT OR DELETE ON user.tabbdd FOR EACH ROW EXECUTE PROCEDURE fct_trg_tabbdd()
(1 ligne)
[ /code ]
Je m'attendais également à voir le code source la fonction associée au trigger.
Qu'en est t'il exactement du résultat fourni par cette fonction ?
Merci de m'éclairer.
Cordialement.
Hors ligne
#4 30/04/2020 18:57:47
- rjuju
- Administrateur
Re : Extraction du code d'un objet de type SQL
pg_trigger_def permet comme son nom l'indique d'obtenir la définition du trigger, pas de la fonction trigger. Vous pouvez utiliser pg_get_functiondef(tgfoid) sur la table pg_trigger.
Julien.
https://rjuju.github.io/
Hors ligne
#5 30/04/2020 19:05:04
- Mlan2
- Membre
Re : Extraction du code d'un objet de type SQL
Merci de la réponse.
Je vais pouvoir à présent poursuivre mon analyse.
Bon Week-end.
Hors ligne
Pages : 1