Zacznij terazZacznij za darmo

Punkty zapisu i wycofywanie zmian

Kontynuujemy analizę depozytów terminowych, które wkrótce wygasną. Te o wartości powyżej 250 tys. miały największy wpływ na skutki kryzysu rynkowego w 2008 roku.

RCONHK12 (>=250 tys.) przechowuje depozyty wygasające w ciągu najbliższych trzech miesięcy, a RCONHK13 (>=250 tys.) – te wygasające między 3 a 12 miesiącami. Jeśli wartości te przekraczają 1 milion dolarów, może to spowodować niedobór płynności w banku, ponieważ są to zazwyczaj większe podmioty, które mogą też wycofać inne aktywa. Z kolei wartości poniżej 500 tys. stanowią czynnik korzystny.

W moim kodzie popełniłem(-am) kilka błędów – ustawiłem(-am) złą wartość dla depozytów przekraczających 500 tysięcy dolarów!

To ćwiczenie jest częścią kursu

Transakcje i obsługa błędów w PostgreSQL

Zobacz kurs

Instrukcje do ćwiczenia

  • W ramach transakcji ustaw FIELD48 na mature+, jeśli łączna wartość wygasających depozytów jest mniejsza niż 500 tys. dolarów, a następnie ustaw punkt zapisu matureplus_flag_set.
  • Ustaw FIELD48 na mature-, jeśli łączna wartość wygasających depozytów mieści się między 500 tys. a 1 milionem dolarów, a następnie ustaw punkt zapisu matureminus_flag_set.
  • Ustaw FIELD48 na mature--, jeśli łączna wartość wygasających depozytów przekracza 100 tys. dolarów (zamiast 1 miliona) – „przypadkowo" pomijając jedno 0.
  • Wycofaj zmiany do momentu tuż po ustawieniu rekordów mature-, a następnie policz wszystkie banki z harmonogramem dojrzewania depozytów mature--.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

BEGIN;

-- Update FIELD48 to indicate a positive maturity rathing when less than $500 thousand.
UPDATE ffiec_reci 
SET ___ = '___' 
WHERE RCONHK12 + RCONHK13 < 500000;

-- Set a savepoint
SAVEPOINT ___;

-- Update FIELD48 to indicate a negative maturity rathing when between $500 thousand and $1 million.
UPDATE ffiec_reci 
___ 
WHERE RCONHK12 + RCONHK13 BETWEEN ___ AND ___;

-- Set a savepoint
SAVEPOINT ___;

-- Accidentailly update FIELD48 to indicate a double negative maturity rating when more than 100K
UPDATE ffiec_reci 
SET ___ = '___' 
WHERE RCONHK12 + RCONHK13 > 100000;

-- Rollback to before the last mistake
ROLLBACK TO ___;

-- Select count of records with a double negative indicator
SELECT count(FIELD48) 
from ffiec_reci 
WHERE FIELD48 = 'mature--';
Edytuj i uruchom kod