A vezérlési folyamat a programozás egyik elsődleges építőköve. Meghatározza a különböző kódblokkok végrehajtásának sorrendjét egy programban.
A legtöbb programozási nyelvhez hasonlóan az Oracle PL/SQL nyelv is különféle vezérlőfolyamat-utasításokat biztosít, például IF-THEN, CASE, FOR, WHILE stb.
Ebben a bejegyzésben megtudjuk, hogyan dolgozhatunk a CASE utasítással PL/SQL-ben, hogy bemutassuk a vezérlési folyamatot az Oracle-lekérdezésekben.
A CASE nyilatkozat bevezetése
A CASE utasítás lehetővé teszi utasítások sorozatának meghatározását. A case utasítás ezután kiválaszt egy sorozatot a végrehajtáshoz a megadott feltétel alapján.
Tekintsd úgy, mint egy hatékonyabb módszert a ha-akkor blokkok deklarálására, miközben megőrzi az olvashatóságot.
A CASE utasítás szintaxisát az alábbi módon tudjuk kifejezni az Oracle-ben:
ÜGYMIKOR feltétel1 THEN eredmény1
MIKOR feltétel2 THEN eredmény2
...
EGYÉB eredmény
VÉGE
A CASE utasítás kiértékeli a szintaxis WHEN záradékainak minden feltételét.
Ha az állítás egyező állítást talál, akkor az egyező eredményt adja vissza. Bizonyos esetekben azonban előfordulhat, hogy az esetleírás nem talál megfelelő feltételt. Ebben a forgatókönyvben az utasítás az ELSE blokkban definiált eredményt hajtja végre.
JEGYZET : Az ELSE blokk nem kötelező. Ha nem érhető el, az adatbázismotor a következő szintaxist használja:
MÁS:CASE_NOT_FOUND EMELÉSE;
Ez lehetővé teszi az adatbázismotor számára, hogy kivételt hozzon létre, és szüneteltesse a végrehajtást, ha nincs egyező feltétel.
1. példa: CASE nyilatkozat alappélda
Ez a példa az esetoperátor alapvető használatát mutatja be az Oracle-ben:
kijelentéletkor száma;
bejegyzés char(10);
kezdődik
életkor := 24;
eset kora
amikor 17 akkor
bejegyzés := 'megtagadva';
amikor 24 akkor
bejegyzés := '9,99';
amikor 45 akkor
bejegyzés :='15,99';
más
bejegyzés := 'nem engedélyezett';
végügy;
DBMS_OUTPUT.PUT_LINE(bejegyzés);
vége;
A mellékelt illusztrációnak minden egyezési feltételt tesztelnie kell, és vissza kell adnia a megfelelő állapotot. Például, mivel az egyezési feltétel 24, a záradék a következőképpen tér vissza:
9.992. példa: CASE nyilatkozat adatbázistáblázattal
Ez a példa a case utasítást használja egy adatbázistáblával.
válassza ki a keresztnevet, a vezetéknevet, a fizetést,ügy
ha a fizetés 2500, akkor 'magas'
egyébként 'ismeretlen'
fizetési_státuszként végződik
az EMPLOYEES-től;
A megadott lekérdezés az esetleírást használja a fizetési tartomány tesztelésére az alkalmazottak táblázatából.
Az eredményül kapott érték a következő képen látható:
Következtetés
Ebben a bejegyzésben megtanulta, hogyan használhatja az Oracle esetkiírást a különféle feltételek tesztelésére, és egy művelet végrehajtására, ha az igaz.