Aan de slagGa gratis aan de slag

Do-statements schrijven

Bij het opschonen van data kom je vaak ongeldige datums tegen. Dat veroorzaakt een exceptie en stopt je SQL-statement. Met een DO-functie en een exceptiehandler kan je statement toch volledig worden uitgevoerd. Laten we kijken hoe we dit soort exceptie kunnen afhandelen met de tabel patients en de kolom created_on. Dit is ook een mooie gelegenheid om een DO-stijl functie te gebruiken.

Deze oefening maakt deel uit van de cursus

Transacties en foutafhandeling in PostgreSQL

Cursus bekijken

Oefeninstructies

  • Maak een DO-functie om het afvangen van een exceptie te starten.
  • BEGIN een transactie waarin je de rij (a1c = 5.8, glucose = 89, fasting = TRUE en created_on = '37-03-2020 01:15:54') in patients INSERT.
  • Voeg een EXCEPTION-handler toe die bij een fout 'bad date' invoegt in de kolom detail van de tabel errors.
  • Specificeer de taal 'plpgsql'.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

-- Create a DO $$ function
____ ____
-- BEGIN a transaction block
BEGIN 
    INSERT INTO patients (a1c, glucose, fasting, created_on) 
    VALUES (____, ____, ____, '37-03-2020 01:15:54');
-- Add an EXCEPTION
___
-- For all all other type of errors
WHEN others THEN 
    INSERT INTO errors (msg, detail) 
    VALUES ('failed to insert', '____');
END;
-- Make sure to specify the language
$$ language '____';

-- Select all the errors recorded
SELECT * FROM errors;
Code bewerken en uitvoeren