Oracle PL / SQL LOOP s príkladom

Obsah:

Anonim

Čo sú to slučky?

Smyčky umožňujú vykonať určitú časť kódu v programe požadovaný počet opakovaní.

V tomto tutoriále sa pozrieme na koncept slučky v PL / SQL a tok riadenia v slučkách. Naučíš sa-

  • Úvod do koncepcie slučiek
  • Vyhlásenia o riadení slučky
  • Typy slučiek v PL / SQL
  • Základné vyhlásenie o slučke
  • Označenie slučiek

Úvod do koncepcie slučiek

Koncept slučiek poskytuje pri kódovaní nasledujúcu výhodu.

  • Opätovná použiteľnosť kódu
  • Zmenšená veľkosť kódu
  • Ľahký priebeh kontroly
  • Znížená zložitosť

Nasledujúca schéma zobrazuje koncepciu opakovania obrázkom

Vo vyššie uvedenom diagrame bude skontrolovaná podmienka slučky a pokiaľ je podmienka slučky splnená, vykoná sa vykonávací blok.

V každej iterácii by sa mala premenná počítadla slučky, ktorá skutočne rozhoduje o stave slučky, upraviť tak, aby sa ovládací prvok zo slučky dostal. V niektorých prípadoch je táto premenná počítadla slučiek operátorom prírastku / zníženia pre preddefinovaný počet a v niektorých prípadoch ide o podmienku hľadania, ktorá blokuje vykonávanie bloku, kým ho nesplní.

Vyhlásenia o riadení slučky

Pred naučením sa konceptu slučiek je povinné sa naučiť ovládacie príkazy slučky. Príkazy riadenia slučky sú tie, ktoré skutočne riadia tok vykonávania vo vnútri slučky. Ďalej je uvedený podrobný popis príkazov riadenia slučky.

ĎALEJ

Toto kľúčové slovo pošle inštrukciu do stroja PL / SQL, že kedykoľvek stroj PL / SQL narazí na toto kľúčové slovo vo vnútri slučky, potom preskočí zostávajúci kód v bloku vykonania kódu a ďalšia iterácia sa začne okamžite. Toto sa použije hlavne vtedy, ak chce byť kód vo vnútri cyklu pre určité iteračné hodnoty preskočený.

VÝSTUP / ODCHOD KEDY

Toto kľúčové slovo vysiela inštrukciu do stroja PL / SQL, že kedykoľvek sa stroj PL / SQL stretne s týmto kľúčovým slovom, okamžite opustí aktuálnu slučku. Ak modul PL / SQL narazí na EXIT vo vnorenej slučke, potom vyjde zo slučky, v ktorej bol definovaný, tj. Vo vnorených slučkách, pričom príkaz EXIT vo vnútornej slučke ukončí iba kontrolu z vnútornej slučky, ale nie z vonkajšej slučky. Po 'EXIT WHEN' nasleduje výraz, ktorý dáva logický výsledok. Ak je výsledok TRUE, potom ovládací prvok ukončí.

ÍSŤ DO

Tento príkaz prenesie ovládací prvok na označený výpis („GOTO

  • Prenos kontroly je možné vykonať iba v rámci podprogramov.
  • Prenos kontroly nemožno vykonať z časti vybavujúcej výnimky do časti vykonania

Použitie tohto vyhlásenia sa neodporúča, pokiaľ neexistujú iné alternatívy, pretože vysledovateľnosť kontroly kódu bude v programe veľmi ťažká z dôvodu prenosu kontroly z jednej časti do druhej.

Typy slučiek v PL / SQL

PL / SQL poskytuje nasledujúce tri typy slučiek

  • Základné vyhlásenie o slučke
  • Pre výpis slučky
  • Zatiaľ čo vyhlásenie slučky

Základné vyhlásenie o slučke

Tento príkaz slučky je najjednoduchšou štruktúrou slučiek v PL / SQL. Blok vykonania sa začína kľúčovým slovom „LOOP“ a končí kľúčovým slovom „END LOOP“.

Podmienka ukončenia by mala byť daná vo vnútri tohto bloku vykonania, aby bola kontrola ukončená zo slučky.

Na ukončenie cyklu musí byť v exekučnej časti výslovne dané kľúčové slovo EXIT.

LOOPEND LOOP;
Vysvetlenie syntaxe:
  • Vo vyššie uvedenej syntaxi kľúčové slovo „LOOP“ označuje začiatok slučky a „END LOOP“ označuje koniec slučky.
  • Exekučný blok obsahuje všetok kód, ktorý je potrebné vykonať, vrátane podmienky EXIT.
  • Exekučná časť môže obsahovať akýkoľvek exekučný príkaz.

Poznámka: Príkaz základnej slučky bez kľúčového slova EXIT bude INFINITE-LOOP, ktorý sa nikdy nezastaví.

Príklad 1 : V tomto príklade vytlačíme číslo od 1 do 5 pomocou príkazu základnej slučky. Za týmto účelom vykonáme nasledujúci kód.

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:/

Vysvetlenie kódu:

  • Riadok kódu 2 : Deklarovanie premennej 'a' ako dátového typu 'NUMBER' a jej inicializácia s hodnotou '1'.
  • Riadok kódu 4 : Tlač vyhlásenia „Program spustený“.
  • Riadok kódu 5: Kľúčové slovo „LOOP“ označuje začiatok slučky.
  • Riadok kódu 6: Vytlačí hodnotu „a“.
  • Riadok kódu 7: Zvyšuje hodnotu „a“ o +1.
  • Riadok kódu 8: Kontroluje, či je hodnota „a“ väčšia ako 5.
  • Riadok kódu 9: Kľúčové slovo „END LOOP“ označuje koniec bloku vykonania.
  • Kód z riadku 6 do riadku 8 sa bude naďalej vykonávať, kým znak „a“ nedosiahne hodnotu 6, pretože podmienka vráti hodnotu TRUE a ovládací prvok ukončí slučku.
  • Riadok kódu 10: Tlač výpisu „Program je dokončený“

Označenie slučiek

V PL / SQL možno označiť slučky. Štítok by mal byť uzavretý medzi „<<“ a „>>“. Označenie slučiek, najmä v kódoch vnorených slučiek, zabezpečí lepšiu čitateľnosť. Štítok je možné zadať v príkaze EXIT na ukončenie konkrétnej slučky. Pomocou štítku je možné vytvoriť ovládací prvok na priamy výstup z vonkajšej slučky vnorených slučiek z ľubovoľného miesta vo vnútri slučiek, a to zadaním príkazu exit, za ktorým nasleduje značka vonkajšej slučky.

<>LOOP  . <> LOOP --inner  END LOOP; . END LOOP;
Vysvetlenie syntaxe:
  • Vo vyššie uvedenej syntaxi má výstupná slučka v sebe ešte jednu slučku.
  • „<>“ a „<>“ sú štítky týchto slučiek.

Príklad 1 : V tomto príklade vytlačíme číslo začínajúce od 1 pomocou príkazu Basic loop. Každé číslo bude vytlačené toľkokrát, koľko je jeho hodnoty. Horná hranica série je stanovená na časti programového vyhlásenia. Naučme sa, ako to môžeme dosiahnuť pomocou konceptu označovania. Za týmto účelom vykonáme nasledujúci kód

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;/

Vysvetlenie kódu:

  • Riadok kódu 2-3 : Deklarácia premenných „a“ a „b“ ako dátový typ „NUMBER“.
  • Riadok kódu 4 : Deklarovanie premennej „upper_limit“ ako dátového typu „NUMBER“ s hodnotou „4“
  • Riadok kódu 6 : Tlač vyhlásenia „Program spustený“.
  • Riadok kódu 7: Vonkajšia slučka bola označená ako „outer_loop“
  • Riadok kódu 9: Hodnota „a“ sa zvýši o 1.
  • Riadok kódu 11: Vnútorná slučka bola označená ako „internal_loop“.
  • Riadok kódu 13: EXIT podmienka, ktorá kontroluje, či je hodnota „a“ vyššia ako hodnota „upper_limit“. Ak nie, pôjde ďalej, inak priamo opustí vonkajšiu slučku.
  • Riadok kódu 14: Tlač hodnoty „b“.
  • Riadok kódu 15: Zvyšuje hodnotu „b“ o +1.
  • Riadok kódu 16: EXIT podmienka, ktorá kontroluje, či je hodnota „b“ vyššia ako „a“. Ak je to tak, ukončí kontrolu z vnútornej slučky.
  • Riadok kódu 14: Tlač výpisu „Program je dokončený“

Zhrnutie

Slučka Základná slučka
Kritériá ODCHODU Ukončite, keď sa v exekučnej časti vyskytne kľúčové slovo „EXIT“
Využitie Dobré použiť, keď výstup nie je založený na konkrétnych podmienkach.