PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 21/11/2015 10:27:33

MadFlo
Membre

Récupérer Message dans Exception sur serveur 9.1

Bonjour,

J'ai besoin de récupérer le message d'erreur dans la section exception.
À partir de la version 9.2 la vie est belle et je peux faire par exemple :

EXCEPTION
  WHEN OTHERS THEN
    GET STACKED DIAGNOSTICS mess = MESSAGE_TEXT;
    ...
END;

Je ne suis pas l'administrateur du serveur.
Ce dernier restera encore au moins quelques mois en version 9.1.17

Comment puis-je récupérer le message d'erreur?

Merci d'avance.


PS : je ne peux pas utiliser de log ou autre.
       il s'agit d'un système évaluant les requêtes des étudiants.
       Ces derniers insèrent leur requête dans ma table.
       J'exécute (dans un sandbox) ces requêtes soumises et j'insère les erreurs éventuelles dans une colonne pour que les étudiants puisse soumettre une bonne réponse.

Hors ligne

#2 21/11/2015 10:48:15

Marc Cousin
Membre

Re : Récupérer Message dans Exception sur serveur 9.1

Je ne pense pas qu'il y avait une solution à ça avant la 9.2.


Marc.

Hors ligne

#3 21/11/2015 10:51:39

edlm
Membre

Re : Récupérer Message dans Exception sur serveur 9.1

Bonjour,


si j'en crois la doc:

La variable SQLERRM contient le message d'erreur associé avec l'exception. Ces variables sont indéfinies à l'extérieur des gestionnaires d'exceptions.

SQLERRM ne fonctionne pas ou n'est pas ce que vous voulez ?


Éric

Hors ligne

#4 21/11/2015 10:52:55

Marc Cousin
Membre

Re : Récupérer Message dans Exception sur serveur 9.1

Ah, oui, si c'est juste le message d'erreur. Vu le GET STACKED DIAGNOSTICTS, j'avais compris que c'était pour récupérer l'ensemble du message (hint et tout)


Marc.

Hors ligne

#5 23/11/2015 12:36:53

MadFlo
Membre

Re : Récupérer Message dans Exception sur serveur 9.1

Merci edlm.
J'ai testé ça fonctionne.

Je me souviens maintenant de pratique similaire dans le plsql de mysql.

Du coup, c'est quoi l'intérêt dans la nouvelle version d'utiliser la syntaxe
GET STACK etc?

Bonne journée,

Hors ligne

#6 23/11/2015 12:48:48

edlm
Membre

Re : Récupérer Message dans Exception sur serveur 9.1

MadFlo a écrit :

Du coup, c'est quoi l'intérêt dans la nouvelle version d'utiliser la syntaxe GET STACK etc?

L'intérêt c'est de pouvoir récupérer, si besoin, plus d'information que ce qui est fourni avec les seules variables SQLSTATE et SQLERRM.


Voir ce tableau dans la doc pour la liste des infos disponibles.


Éric

Hors ligne

#7 23/11/2015 16:59:09

MadFlo
Membre

Re : Récupérer Message dans Exception sur serveur 9.1

OK merci je comprends mieux.

Hors ligne

Pied de page des forums