Upravljački tok je jedan od primarnih gradivnih blokova u programiranju. Definira redoslijed kojim se različiti blokovi koda izvršavaju u programu.
Kao i većina programskih jezika, Oracle PL/SQL jezik pruža različite kontrolne naredbe tijeka kao što su IF-THEN, CASE, FOR, WHILE, itd.
U ovom postu naučit ćemo kako raditi s naredbom CASE u PL/SQL-u da bismo uveli tok kontrole u naše Oracle upite.
Uvod u naredbu CASE
Naredba CASE omogućuje definiranje niza izjava. Naredba case zatim odabire jedan niz za izvršenje na temelju navedenog uvjeta.
Zamislite to kao učinkovitiji način deklariranja skupa if-then blokova uz očuvanje čitljivosti.
Sintaksu naredbe CASE možemo izraziti u Oracleu kao što je prikazano u sljedećem:
SLUČAJWHEN uvjet1 THEN rezultat1
WHEN uvjet2 THEN rezultat2
...
ILSE rezultat
KRAJ
Izjava CASE procjenjuje svaki uvjet u klauzulama WHEN u ovoj sintaksi.
Ako naredba pronađe podudarnu naredbu, vraća podudarni rezultat. Međutim, u nekim slučajevima iskaz slučaja možda neće pronaći odgovarajući uvjet. U takvom scenariju, naredba izvršava rezultat koji je definiran u bloku ELSE.
BILJEŠKA : Blok ELSE nije obavezan. Ako nije dostupan, motor baze podataka koristi sljedeću sintaksu:
DRUGO:RAISE CASE_NOT_FOUND;
To omogućuje motoru baze podataka da podigne iznimku i pauzira izvršenje kada ne postoji odgovarajući uvjet.
Primjer 1: Osnovni primjer naredbe CASE
Ovaj primjer prikazuje osnovni primjer upotrebe operatora case u Oracleu:
proglasitidobni broj;
unos char(10);
početi
dob := 24;
starost slučaja
kada 17 tada
unos := 'denined';
kada 24 tada
unos := '9,99';
kad 45 tada
unos :='15,99';
drugo
unos := 'nije dopušteno';
kraj slučaja;
DBMS_OUTPUT.PUT_LINE(unos);
kraj;
Navedena ilustracija trebala bi testirati bilo koji uvjet podudaranja i vratiti odgovarajući status. Na primjer, budući da je uvjet podudaranja 24, klauzula se vraća na sljedeći način:
9.99Primjer 2: Izjava CASE s tablicom baze podataka
Ovaj primjer koristi naredbu case s tablicom baze podataka.
odaberite ime, prezime, plaću,slučaj
kada je plaća 2500 onda 'Visoka'
inače 'Nepoznato'
završava kao status_plaće
od ZAPOSLENIKA;
Navedeni upit koristi iskaz slučaja za testiranje raspona plaća iz tablice zaposlenika.
Rezultirajuća vrijednost je kao što je prikazano u nastavku:
Zaključak
U ovom ste postu naučili kako koristiti Oracleovu naredbu slučaja za testiranje različitih uvjeta i izvođenje radnje ako je jedan istinit.