Oracle PL / SQL LOOP példával

Tartalomjegyzék:

Anonim

Mik azok a hurkok?

A hurkok lehetővé teszik, hogy a program egy bizonyos része a kívánt számú alkalommal végrehajtódjon.

Ebben az oktatóanyagban megnézzük a hurok fogalmát a PL / SQL-ben és a vezérlés folyamatát a hurkokban. Tanulni fogsz-

  • Bevezetés a hurkok koncepciójába
  • Hurokvezérlő nyilatkozatok
  • A hurok típusai a PL / SQL-ben
  • Alap hurok kimutatás
  • A hurkok címkézése

Bevezetés a hurkok koncepciójába

A hurok koncepció a következő előnyt nyújtja a kódolásban.

  • A kód újrafelhasználhatósága
  • Csökkentett kódméret
  • Könnyű vezérlés
  • Csökkentett komplexitás

Az alábbi ábra a hurkolás koncepcióját ábrázolja

A fenti ábrán a hurokfeltételt ellenőrizzük, és amíg a hurokfeltétel teljesül, a végrehajtási blokk végrehajtásra kerül.

Minden iterációban a hurokfeltételt ténylegesen eldöntő ciklusszámláló változónak módosulnia kell, hogy a vezérlés kilépjen a ciklusból. Bizonyos esetekben ez a ciklusszámláló változó növekmény / csökkentés operátor egy előre definiált számláláshoz, és egyes esetekben ez egy keresési feltétel, amely addig hajtja végre a blokkot, amíg ki nem elégíti azt.

Hurokvezérlő nyilatkozatok

A hurok fogalmának elsajátítása előtt kötelező megtanulni a hurok vezérlő utasításokat. A hurokvezérlő utasítások azok, amelyek valóban szabályozzák a cikluson belüli végrehajtás áramlását. Az alábbiakban a hurokvezérlő utasítások részletes leírása található.

FOLYTATNI

Ez a kulcsszó utasítást küld a PL / SQL motornak, hogy amikor a PL / SQL motor találkozik ezzel a kulcsszóval a hurokban, akkor kihagyja a fennmaradó kódot a kód végrehajtási blokkjában, és a következő iteráció azonnal megkezdődik. Ezt főleg akkor fogják használni, ha a cikluson belüli kódot ki akarják hagyni bizonyos iterációs értékek esetén.

EXIT / EXIT WHEN

Ez a kulcsszó utasítást küld a PL / SQL motornak, hogy amikor a PL / SQL motor találkozik ezzel a kulcsszóval, akkor azonnal kilép az aktuális hurokból. Ha a PL / SQL motor beágyazott ciklusban találkozik az EXIT-el, akkor abból a ciklusból kerül ki, amelyben definiálták, azaz beágyazott ciklusokban, ha az EXIT értéket a belső ciklusban adja meg, csak a belső hurokból lép ki a vezérlésből, nem a külső hurokból. Az „EXIT WHEN” kifejezést egy kifejezés követi, amely logikai eredményt ad. Ha az eredmény IGAZ, akkor a vezérlő kilép.

MENJ

Ez az utasítás átviszi a vezérlést a címkézett utasításra ("GOTO

  • A vezérlés átadása csak az alprogramokon belül történhet.
  • A vezérlés átvitele nem végezhető a kivételkezelő részről a végrehajtási részre

Ennek az utasításnak a használata csak akkor ajánlott, ha nincs más alternatíva, mivel a kód-vezérlés nyomon követhetősége nagyon nehéz lesz a programban, a vezérlés egyik részről a másikra történő áthelyezése miatt.

A hurok típusai a PL / SQL-ben

A PL / SQL a következő három típusú hurkot biztosítja

  • Alap ciklus utasítás
  • A ciklus kimutatásához
  • Míg a hurok utasítás

Alap hurok kimutatás

Ez a ciklus utasítás a PL / SQL legegyszerűbb hurokstruktúrája. A végrehajtási blokk a „LOOP” kulcsszóval kezdődik, és az „END LOOP” kulcsszóval zárul.

A kilépési feltételt ebben a végrehajtási blokkban kell megadni, hogy a vezérlés kilépjen a hurokból.

A ciklusból való kilépéshez az EXIT kulcsszót kifejezetten meg kell adni a végrehajtási részben.

LOOPEND LOOP;
Szintaxis Magyarázat:
  • A fenti szintaxisban a „LOOP” kulcsszó a hurok kezdetét, az „END LOOP” pedig a hurok végét jelöli.
  • A végrehajtási blokk tartalmazza az összes végrehajtandó kódot, beleértve az EXIT feltételt is.
  • A végrehajtási rész bármilyen végrehajtási utasítást tartalmazhat.

Megjegyzés: Az alap ciklus utasítás, EXIT kulcsszó nélkül, egy VÉGTELEN LOOP lesz, amely soha nem áll le.

1. példa : Ebben a példában 1 és 5 közötti számot fogunk kinyomtatni az alap ciklus utasítás használatával. Ehhez a következő kódot hajtjuk végre.

DECLAREa NUMBER:=1;BEGINdbms_output.put_line('Program started.');LOOPdbms_output.put_line(a);a:=a+1;EXIT WHEN a>5;END LOOP;dbms_output.put_line('Program completed');END:/

Kód Magyarázat:

  • 2. kódsor: Az „a” változó deklarálása „NUMBER” típusú adattípusként és inicializálása „1” értékkel.
  • 4. kódsor: A "Program elindult" utasítás kinyomtatása.
  • 5. kódsor : A „LOOP” kulcsszó jelöli a hurok kezdetét.
  • 6. kódsor : Kiírja az „a” értékét.
  • 7. kódsor : Növeli az „a” értékét +1-gyel.
  • 8. kódsor : Ellenőrzi, hogy az „a” értéke nagyobb-e, mint 5.
  • 9. kódsor : Az „END LOOP” kulcsszó jelzi a végrehajtási blokk végét.
  • A kód a 6-tól a 8-ig folytatódik, amíg az 'a' eléri a 6-os értéket, mivel a feltétel visszaadja az IGAZ értéket, és a vezérlő kilép a ciklusból.
  • 10. kódsor : A "Program befejezve" utasítás nyomtatása

A hurkok címkézése

PL / SQL-ben a hurkok felcímkézhetők. A címkét a "<<" és a ">>" közé kell tenni. A hurkok címkézése, különösen beágyazott hurok kódokban, nagyobb olvashatóságot biztosít. A címke az EXIT paranccsal adható meg, hogy kilépjen az adott ciklusból. A címke használatával a vezérlés úgy hozható létre, hogy a beágyazott hurkok külső hurokból közvetlenül kilépjen a hurkok belsejéből bárhonnan, az exit parancs megadásával, amelyet külső hurok címke követ.

<>LOOP  . <> LOOP --inner  END LOOP; . END LOOP;
Szintaxis Magyarázat:
  • A fenti szintaxisban a kimeneti ciklusban van még egy hurok.
  • A '<>' és '<>' ezeknek a hurkoknak a címkéje.

1. példa : Ebben a példában 1- től kezdve nyomtatunk egy számot a Basic ciklus utasítás használatával. Minden szám annyiszor kerül kinyomtatásra, amennyi az értéke. A sorozat felső határát a programdeklarációs rész rögzíti. Tanuljuk meg, hogyan használhatjuk a címke fogalmát ennek elérésére. Ehhez a következő kódot hajtjuk végre

DECLAREa NUMBER:=0;b NUMBER;upper-limit NUMBER :=4;BEGINdbms_output.put_line(‘Program started.' );«outerloop»‭ ‬LOOPa:=a+1;b:=l;«inner loop»LOOPEXIT outer_loop WHEN a > upper_limit;dbms_output.put_line(a);b:=b+l;EXIT inner_loop WHEN b>a;END LOOP;END LOOP;dbms_output.put_line('Program completed.');END;/

Kód Magyarázat:

  • 2-3 kódsor: Az „a” és „b” változó deklarálása „SZÁM” adattípusnak.
  • 4. kódsor: A „upper_limit” változó deklarálása „NUMBER” típusú adattípusként „4” értékkel
  • 6. kódsor: A "Program elindult" utasítás kinyomtatása.
  • 7. kódsor : A külső hurok címkéje "external_loop"
  • 9. kódsor: Az „a” értéke 1-gyel növekszik.
  • 11. kódsor : A belső hurok "belső_hátsó" címkével volt ellátva.
  • 13. kódsor : EXIT feltétel, amely ellenőrzi, hogy az 'a' értéke magasabb-e a 'upper_limit' értéknél. Ha nem, akkor tovább megy, különben közvetlenül kilép a külső hurokból.
  • 14. kódsor: A „b” értékének kinyomtatása.
  • 15. kódsor : A b értékét +1-gyel növeli.
  • 16. kódsor : EXIT feltétel, amely ellenőrzi, hogy a „b” értéke nagyobb-e, mint az „a”. Ha igen, akkor kilép a vezérlésből a belső hurokból.
  • 14. kódsor: A "Program befejezve" utasítás nyomtatása

Összegzés

Hurok Alap hurok
EXIT kritériumok Kilépés, amikor a végrehajtási részben az „EXIT” kulcsszóval találkozik
Használat Jó használni, ha a kilépés nem egy adott feltételen alapszik.