IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • DECLARE due variabili exc_message ed exc_detail di tipo text.
  • Recupera lo stack di diagnostica e assegna a exc_message il MESSAGE_TEXT e a exc_detail il PG_EXCEPTION_DETAIL.
  • Inserisci exc_message e exc_detail nei campi msg e detail della 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;
Modifica ed esegui il codice