ÎncepețiÎncepe gratuit

Obținerea diagnosticelor stivuite

Diagnosticele stivuite pot extrage mesajul intern de eroare PostgreSQL și detaliile excepției. Să revizitam tabela noastră de pacienți și să încercăm să adăugăm o valoare A1C care depășește limita admisă la testare. Aceasta va declanșa o excepție de constrângere de verificare pe care o putem captura. Putem folosi diagnosticele stivuite în blocul de gestionare a excepțiilor pentru a îmbogăți înregistrarea erorilor.

Acest exercițiu face parte din cursul

Tranzacții și gestionarea erorilor în PostgreSQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • DECLARE două variabile, exc_message și exc_detail, de tip text.
  • Obține stiva de diagnostice și atribuie MESSAGE_TEXT variabilei exc_message, respectiv PG_EXCEPTION_DETAIL variabilei exc_detail.
  • Inserează exc_message și exc_detail în câmpurile msg și detail din tabela de erori.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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;
Editează și rulează codul