ComenzarEmpieza gratis

Obtener stacked diagnostics

Con los stacked diagnostics puedes obtener el mensaje de error interno de PostgreSQL y los detalles de la excepción. Volvamos a nuestra tabla de pacientes e intentemos añadir un A1C por encima del límite de la prueba. Esto provocará una excepción por una restricción CHECK que podremos capturar. Podemos usar los stacked diagnostics en el manejador de excepciones para enriquecer nuestro registro de errores.

Este ejercicio forma parte del curso

Transacciones y manejo de errores en PostgreSQL

Ver curso

Instrucciones del ejercicio

  • DECLARE dos variables exc_message y exc_detail como texto.
  • Obtén la pila de diagnósticos y asigna exc_message a MESSAGE_TEXT y exc_detail a PG_EXCEPTION_DETAIL.
  • Inserta exc_message y exc_detail en los campos msg y detail de la tabla errors.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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;
Editar y ejecutar código