Recuperare le stacked diagnostics
Le stacked diagnostics permettono di ottenere il messaggio di errore interno di PostgreSQL e i dettagli dell'eccezione. Rivediamo la nostra tabella dei pazienti e proviamo ad aggiungere un valore A1C oltre il limite di test. Questo genererà un'eccezione di tipo check constraint che possiamo intercettare. Possiamo usare le stacked diagnostics nel gestore delle eccezioni per arricchire la registrazione degli errori.
Questo esercizio fa parte del corso
Transazioni e gestione degli errori in PostgreSQL
Istruzioni dell'esercizio
DECLAREdue variabiliexc_messageedexc_detaildi tipo text.- Recupera lo stack di diagnostica e assegna a
exc_messageilMESSAGE_TEXTe aexc_detaililPG_EXCEPTION_DETAIL. - Inserisci
exc_messageeexc_detailnei campimsgedetaildella tabella errors.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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;