Mint minden fő programozási nyelv, a PL/SQL is támogatja a ciklusokat, amelyek lehetővé teszik egy utasításkészlet megismétlését, amíg egy bizonyos feltétel nem teljesül.
Ebben az oktatóanyagban megvizsgáljuk a LOOP utasítás használatát PL/SQL-ben egy kódblokk ismételt végrehajtására.
Oracle Loops
A PL/SQL nyelv támogatja a különféle hurokkonstrukciókat, például a „for” ciklust és a „while” ciklust. Egy általános ciklus szintaxisát az alábbi módon tudjuk kifejezni az Oracle-ben:
<< címke >> HUROK
loop_statement;
END LOOP loop_label;
Ez tartalmazza a LOOP kulcsszót és a végrehajtandó ciklus törzsét, és az END LOOP kulcsszóval van zárva.
A LOOP blokk végrehajtja a meghatározott műveleteket, és a befejezés után visszaadja a vezérlőt a felső hurok záradékához. Ez általában egy EXIT vagy EXIT WHEN záradékba van foglalva, amely egy adott feltétel teljesülése után fejezi be a hurkot. Ez segít megelőzni a végtelen hurkokat.
Oracle For Loop szintaxis:
Az alábbiakban a „for” ciklus szintaxisát mutatjuk be PL/SQL-ben:
KEZDŐDIKFOR ciklus_változó IN [alsó_korlát..felső_korlát] LOOP
-- a ciklusban végrehajtandó kód
VÉGE hurok;
VÉGE;
A loop_variable lehetővé teszi egy hurok meghatározását, amely a ciklus, valamint az alsó és felső határok szabályozására szolgál. A felső és alsó határok azt a tartományértéket adják meg, ahol a hurok kiértékelése megtörténik.
Oracle While Loops
Meghatározhatjuk a „while” ciklusokat is a PL/SQL-ben, amint azt a következő szintaxis mutatja:
KEZDŐDIKWHILE állapot LOOP
-- hurokművelet
VÉGE hurok;
VÉGE;
A „while” ciklusban a ciklusművelet ismételten végrehajtásra kerül, amíg a feltétel igaz.
Oracle Cursor for Loops
Az Oracle támogatja a „cursor for” ciklusokat is, amelyek lehetővé teszik számunkra, hogy egy adott eredményhalmaz minden sorához utasításkészletet hajtsunk végre. A szintaxis a következőképpen fejezhető ki:
KEZDŐDIKFOR loop_variable IN (SELECT oszlop1, oszlop2, ...
FROM tábla1, tábla2, ...
WHERE feltétel) LOOP
-- hurokművelet
END LOOP;
VÉGE;
Példa hurkok az Oracle-ben
A következő példák az Oracle for, while és kurzorhurkjaival való munka alapjait mutatják be.
Oracle For Loop példa:
Ez a példa bemutatja, hogyan lehet „for” ciklust használni az 1-től 10-ig terjedő számok kinyomtatására.
KEZDŐDIKFOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
VÉGE;
Példa a hurok közben:
Hasonló műveletet hajthatunk végre egy while ciklus használatával, az alábbiak szerint:
KEZDŐDIKKIJELENT
i SZÁM := 1;
KEZDŐDIK
MIközben i <= 10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
END LOOP;
VÉGE;
VÉGE;
Ennek a „for” ciklushoz hasonló műveletet kell végrehajtania.
Példa a kurzorra a hurokra:
Az alábbiakban bemutatjuk, hogyan kell használni a „kurzor” ciklust az ügyfél teljes nevének lekéréséhez:
KEZDŐDIKFOR alkalmazott (VÁLASZTÁSA utónév, vezetéknév
alkalmazottaktól) LOOP
DBMS_OUTPUT.PUT_LINE(alkalmazott.keresztnév || ' ' || alkalmazott.last_neve);
END LOOP;
VÉGE;
Példa kimenet:
Következtetés
Ebben a bejegyzésben a hurkok három fő típusával találkozhat az Oracle PL/SQL nyelvben. A további felfedezéshez tekintse meg a dokumentációt.