Ohjausvirtaus on yksi ohjelmoinnin tärkeimmistä rakennuspalikoista. Se määrittää järjestyksen, jossa eri koodilohkot suoritetaan ohjelmassa.
Kuten useimmat ohjelmointikielet, Oraclen PL/SQL-kieli tarjoaa erilaisia ohjausvirtalausekkeita, kuten IF-THEN, CASE, FOR, WHILE jne.
Tässä viestissä opimme työskentelemään CASE-käskyn kanssa PL/SQL:ssä ohjausvirran käyttöönottamiseksi Oracle-kyselyissämme.
Johdatus CASE-lausumaan
CASE-käskyn avulla voit määrittää lauseiden sarjan. Tapauslauseke valitsee sitten yhden suoritettavan sekvenssin määritetyn ehdon perusteella.
Ajattele sitä tehokkaampana tapana ilmoittaa joukko jos-niin-lohkoja säilyttäen samalla luettavuuden.
Voimme ilmaista CASE-käskyn syntaksin Oraclessa seuraavasti:
CASEMILLOIN ehto1 NIIN tulos1
MILLOIN ehto2 NIIN tulos2
...
MUU tulos
LOPPU
CASE-käsky arvioi jokaisen tämän syntaksin WHEN-lauseen ehdon.
Jos lauseke löytää vastaavan lauseen, se palauttaa vastaavan tuloksen. Joissakin tapauksissa tapauslauseke ei kuitenkaan välttämättä löydä vastaavaa ehtoa. Tällaisessa skenaariossa käsky suorittaa ELSE-lohkossa määritellyn tuloksen.
HUOMAUTUS : ELSE-lohko on valinnainen. Jos tietokantamoottori ei ole käytettävissä, se käyttää seuraavaa syntaksia:
MUU:NOSTA CASE_NOT_FOUND;
Tämän ansiosta tietokantamoottori voi nostaa poikkeuksen ja keskeyttää suorituksen, kun vastaavaa ehtoa ei ole.
Esimerkki 1: CASE-lausunnon perusesimerkki
Tämä esimerkki näyttää tapausoperaattorin perusesimerkkikäytön Oraclessa:
julistaaikänumero;
merkintämerkki(10);
alkaa
ikä:= 24;
tapauksen ikä
silloin kun 17
merkintä := 'kielletty';
silloin kun 24
merkintä := '9,99';
silloin kun 45
merkintä :='15.99';
muu
merkintä := 'ei sallittu';
loppukotelo;
DBMS_OUTPUT.PUT_LINE(merkintä);
loppu;
Toimitetun kuvan tulee testata mahdollisia yhteensopivuusehtoja ja palauttaa vastaava tila. Esimerkiksi, koska vastaavuusehto on 24, lauseke palauttaa seuraavasti:
9.99Esimerkki 2: CASE-lausunto tietokantataulukolla
Tässä esimerkissä käytetään tapauskäskyä tietokantataulukon kanssa.
valitse etunimi, sukunimi, palkka,tapaus
kun palkka 2500 sitten 'korkea'
muuten 'Tuntematon'
päättyy palkka_tilaksi
alkaen EMPLOYEES;
Annettu kysely käyttää tapausselvitystä palkan vaihteluvälin testaamiseen työntekijöiden taulukosta.
Tuloksena oleva arvo on seuraavanlainen:
Johtopäätös
Tässä viestissä opit käyttämään Oraclen tapauslauseketta eri ehtojen testaamiseen ja toimintojen suorittamiseen, jos se on totta.