Kontrolflow er en af de primære byggesten i programmering. Den definerer rækkefølgen, hvori de forskellige kodeblokke udføres i et program.
Som de fleste programmeringssprog giver Oracle PL/SQL-sproget forskellige kontrolflow-sætninger såsom IF-THEN, CASE, FOR, WHILE osv.
I dette indlæg lærer vi, hvordan man arbejder med CASE-sætningen i PL/SQL for at introducere kontrolflowet i vores Oracle-forespørgsler.
Introduktion til CASE Statement
CASE-sætningen giver dig mulighed for at definere en sekvens af udsagn. Case-sætningen vælger derefter én sekvens, der skal udføres baseret på den angivne betingelse.
Tænk på det som en mere effektiv måde at erklære et sæt hvis-så-blokke på, samtidig med at læsbarheden bevares.
Vi kan udtrykke syntaksen for CASE-sætningen i Oracle som vist i følgende:
SAGNÅR tilstand1 SÅ resultat1
NÅR tilstand2 SÅ resultat2
...
ANDET resultat
ENDE
CASE-sætningen evaluerer hver betingelse i WHEN-sætningerne i denne syntaks.
Hvis udsagnet finder et matchende udsagn, returnerer det det matchende resultat. I nogle tilfælde kan sagsfremstillingen dog ikke finde en matchende betingelse. I et sådant scenarie udfører sætningen resultatet, som er defineret i ELSE-blokken.
BEMÆRK : ELSE-blokken er valgfri. Hvis den ikke er tilgængelig, bruger databasemotoren følgende syntaks:
ANDET:RAISE CASE_NOT_FOUND;
Dette giver databasemotoren mulighed for at rejse en undtagelse og sætte udførelsen på pause, når der ikke er nogen matchende betingelse.
Eksempel 1: CASE Statement Grundlæggende eksempel
Dette eksempel viser et grundlæggende eksempel på brug af sagsoperatøren i Oracle:
erklærealdersnummer;
indtastningstegn(10);
begynde
alder:= 24;
sagens alder
når 17 så
indgang := 'afvist';
når 24 så
indgang := '9.99';
når 45 så
indtastning :='15,99';
andet
indgang := 'ikke tilladt';
slutsag;
DBMS_OUTPUT.PUT_LINE(indgang);
ende;
Den medfølgende illustration bør teste for enhver matchende tilstand og returnere den tilsvarende status. For eksempel, da den matchende betingelse er 24, returnerer klausulen som følger:
9,99Eksempel 2: CASE-erklæring med en databasetabel
Dette eksempel bruger case-sætningen med en databasetabel.
vælg fornavn, efternavn, løn,sag
når løn 2500 derefter 'Høj'
ellers 'ukendt'
ende som lønstatus
fra MEDARBEJDERE;
Den angivne forespørgsel bruger sagsopgørelsen til at teste lønintervallet fra medarbejdernes tabel.
Den resulterende værdi er som vist i følgende:
Konklusion
I dette indlæg lærte du, hvordan du bruger Oracle case-sætningen til at teste de forskellige forhold og udføre en handling, hvis en er sand.