CommencezCommencez gratuitement

Obtenir des diagnostics empilés

Les diagnostics empilés permettent de récupérer le message d'erreur interne de PostgreSQL et les détails de l'exception. Revenons à notre table des patients et tentons d'ajouter une valeur d'A1C au‑delà de la limite de test. Cela provoquera une exception de contrainte CHECK que nous pourrons capter. Nous utiliserons les diagnostics empilés dans le gestionnaire d'exceptions pour enrichir l'enregistrement de nos erreurs.

Cette activité fait partie du cours

Transactions et gestion des erreurs dans PostgreSQL

Voir le cours

Instructions de l’exercice

  • DECLARE deux variables exc_message et exc_detail de type text.
  • Récupérez la pile de diagnostics et affectez exc_message à MESSAGE_TEXT et exc_detail à PG_EXCEPTION_DETAIL.
  • Insérez exc_message et exc_detail dans les champs msg et detail de la table errors.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

DO $$ 
-- Declare our text variables: exc_message and exc_detail 
___
   ___ text;
   exc_detail ___;
BEGIN 
    INSERT INTO patients (a1c, glucose, fasting) 
    values (20, 89, TRUE);
EXCEPTION 
WHEN others THEN
    -- Get the exception message and detail via stacked diagnostics
	___ ___ ___ 
    	exc_message = ___,
        exc_detail = ___;
    -- Record the exception message and detail in the errors table
    INSERT INTO errors (___, detail) VALUES (exc_message, ___);
END;
$$ language 'plpgsql';

-- Select all the errors recorded
SELECT * FROM errors;
Modifier et exécuter le code