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 17/12/2015 18:28:00

Mlan2
Membre

Récupération des codes erreurs et messages d'erreurs

Bonjour,

Je cherche à retourner les codes d'erreurs, ainsi que les messages correspondant dans le cas où ces erreurs se produiraient, afin de les restituer à l'utilisateur de façon explicite.

Sous Oracle j'avais implémenté une procédure qui répondait à ce besoin.

Ci-dessous, le code correspondant :

FUNCTION Repertorie_Erreurs (Buff_Err VARCHAR2) RETURN NUMBER
IS
    -- Déclarations
    Ret              NUMBER;                -- Code de retour
    Err_Num          NUMBER;                -- Erreur Oracle
    Err_Msg          VARCHAR2 (100);        -- Message erreur Oracle
    Buf_Msg          VARCHAR2(1000);        -- Buffer de message.

BEGIN
    Ret     := 0;
    Err_Num := SQLCODE;
    Err_Msg := SUBSTR(SQLERRM, 1, 100);

    ...
    
    Ret := 1;

    RETURN Ret;
END;

La variable SQLCODE permettait de récupérer le code de l'erreur.
La variable SQLERRM permettait de récupérer le texte du message.

Sous PosgreSQL, je n'ai pas réussi à trouver ces fonctionnalités.

Je pense que cela tourne autour de la fonction RAISE ...

La variable SQLSTATE semblerait recevoir le code erreur.
J'ai tenté de l'affecter à une variable de type varchar, mais une erreur est retournée, indiquant SQLSTATE n'est pas une colonne.

Aussi, j'ai besoin d'un petit éclairage de votre part afin de définir une bonne méthode.

Merci de votre retour.

Hors ligne

#2 17/12/2015 18:47:37

rjuju
Administrateur

Re : Récupération des codes erreurs et messages d'erreurs

Bonjour,


Vous trouverez tout ce qu'il faut en utilisant GET STACKED DIAGNOSTICS, voir http://docs.postgresql.fr/9.4/plpgsql-c … ics-values

Hors ligne

#3 17/12/2015 18:59:51

Mlan2
Membre

Re : Récupération des codes erreurs et messages d'erreurs

Merci du retour.

Cela semble correspondre à ma demande.
Je vais exploiter de ce pas cette piste.

Hors ligne

Pied de page des forums