do ifadeleri yazma
Veri temizlerken sıkça hatalı tarihler içeren verilerle karşılaşırız. Bu, bir istisnaya yol açar ve SQL ifademizi durdurur; ancak bir DO fonksiyonunu istisna yakalayıcıyla birlikte kullanarak ifademizin sonuna kadar çalışmasını sağlayabiliriz. patients tablosu ve created_on sütunuyla bu tür bir istisnayı nasıl ele alabileceğimize bakalım. Bu aynı zamanda DO tarzı bir fonksiyon kullanmamız için iyi bir fırsat olacak.
Bu egzersiz
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi
kursunun bir parçasıdırEgzersiz talimatları
- Bir istisna yakalamayı başlatmak için bir
DOfonksiyonu oluştur. patientstablosuna şu değerlerleINSERTyaptığın bir işlemi BEGIN ile başlat: (a1c=5.8,glucose=89,fasting=TRUEvecreated_on= '37-03-2020 01:15:54').- Hata durumunda
errorstablosunundetailsütununa'bad date'ekleyen birEXCEPTIONyakalayıcı ekle. - Dili
'plpgsql'olarak belirt.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- 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;