Zatímco Loop in Oracle PL/SQL s příkladem
⚡ Chytré shrnutí
Oracle Cyklus PL/SQL WHILE opakuje blok kódu, dokud je podmínka splněna. Jedná se o cyklus kontroly vstupů, který před každou iterací testuje výstupní podmínku, takže blok se může spustit nulakrát a nepotřebuje žádné explicitní klíčové slovo EXIT.

Co je to smyčka While v PL/SQL?
Jedno Zatímco Loop V PL/SQL funguje podobně jako základní příkaz smyčky, až na to, že podmínka ukončení je na samém začátku smyčky. Funguje to jako smyčka s kontrolou vstupů, kde se prováděcí blok spustí pouze tehdy, je-li splněna podmínka, protože podmínka ukončení je kontrolována před provedením.
Nevyžaduje explicitně klíčové slovo 'EXIT' pro ukončení smyčky, protože podmínku pokaždé implicitně ověří.
Syntaxe smyčky PL/SQL
WHILE <EXIT condition> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
- Klíčové slovo „WHILE“ označuje začátek smyčky a „END LOOP“ označuje její konec.
- Ukončovací podmínka se vyhodnocuje pokaždé před zahájením provádění prováděcí části.
- Blok prováděných operací obsahuje veškerý kód, který je potřeba spustit.
- Část pro spuštění může obsahovat libovolný spustitelný příkaz.
Příklad Oracle PL/SQL While Loop
V tomto příkladu vypíšeme čísla od 1 do 5 pomocí příkazu cyklu WHILE.

DECLARE a NUMBER := 1; BEGIN dbms_output.put_line('Program started'); WHILE (a <= 5) LOOP dbms_output.put_line(a); a:= a+1; END LOOP; dbms_output.put_line('Program completed'); END; /
Code Vysvětlení:
- Code řádek 2: Deklarace proměnné 'a' jako 'NUMBER' a její inicializace hodnotou '1'.
- Code řádek 4: Vypsání výpisu „Program spuštěn“.
- Code řádek 5: Klíčové slovo 'WHILE' označuje začátek smyčky a kontroluje, zda je hodnota 'a' menší nebo rovna 5.
- Code řádek 7: Vytiskne hodnotu 'a'.
- Code řádek 8: Zvýší hodnotu proměnné 'a' o 1.
- Code řádek 9: Klíčové slovo 'END LOOP' označuje konec prováděcího bloku.
- Řádky 7 a 8 se pokračují v provádění, dokud 'a' nedosáhne hodnoty 6, načež se podmínka vrátí na hodnotu FALSE a řízení ukončí operaci. smyčka.
- Code řádek 10: Vytiskne se výpis „Program dokončen“.
Smyčka WHILE vs. smyčka FOR vs. základní smyčka
PL/SQL nabízí tři typy cyklů a výběr toho správného udrží kód přehledný. Cyklus WHILE je vhodný pro opakování řízené podmínkou, zatímco další dva jsou vhodné pro pevný počet nebo explicitně řízený návrat.
| Smyčka | Výstupní kritéria | Nejlépe se používá, když |
|---|---|---|
| Smyčka WHILE | Podmínka nahoře se stává falešnou | Počet iterací není znám |
| smyčka FOR | Počítadlo dosáhne konce rozsahu | Počet iterací je známý |
| Základní smyčka | Explicitní EXIT v bloku | Východ je ovládán ručně |
Protože smyčka WHILE testuje svou podmínku na začátku, tělo smyčky se může spustit nulakrát, pokud je podmínka od začátku nepravdivá. To je klíčový rozdíl oproti základní smyčce, jejíž tělo se vždy spustí alespoň jednou.
Vyhnutí se nekonečné smyčce While
Smyčka WHILE zcela závisí na pohybu řídicí proměnné směrem k výstupní podmínce. Pokud se tak nikdy nestane, smyčka běží donekonečna a relace se zasekne. Tomu brání tři návyky:
- Změňte čítač v každé iteraci. Příklad uvnitř smyčky zvyšuje hodnotu 'a'; odstranění tohoto řádku by způsobilo nekonečnou smyčku.
- Otestujte hranici. Potvrďte, že podmínka se může stát nepravdivou pro počáteční hodnotu, nejen pro ideální případ.
- Přidejte bezpečnostní VÝCHOD KDYŽ. U smyčky řízené daty funguje příkaz EXIT WHEN při maximálním počtu iterací jako ochrana před neočekávanou hodnotou.
Pokud je počet opakování skutečně fixní, smyčka FOR toto riziko zcela eliminuje, protože její čítač je spravován automaticky.
