Kao i svi glavni programski jezici, PL/SQL podržava petlje koje dopuštaju ponavljanje skupa instrukcija dok se ne ispuni određeni uvjet.
U ovom vodiču istražit ćemo upotrebu naredbe LOOP u PL/SQL-u za opetovano izvršavanje bloka koda.
Oracle petlje
PL/SQL jezik podržava različite konstrukcije petlji kao što su petlje 'for' i petlje 'while'. Možemo izraziti sintaksu generičke petlje u Oracleu kao što je prikazano u sljedećem:
<< označiti >> PETLJA
naredba_petlje;
END LOOP oznaka_petlje;
Ovo sadrži ključnu riječ LOOP i tijelo petlje koju treba izvršiti i priloženo je ključnoj riječi END LOOP.
Blok LOOP pokreće definirane akcije i nakon završetka vraća kontrolu gornjoj klauzuli petlje. To se obično nalazi u klauzuli EXIT ili EXIT WHEN za prekid petlje nakon što se ispuni određeni uvjet. To pomaže u sprječavanju beskonačnih petlji.
Oracle For Loop sintaksa:
Sljedeće prikazuje sintaksu 'for' petlje u PL/SQL:
POČETIFOR petlja_varijabla IN [donja_granica..gornja_granica] PETLJA
-- kod koji će se izvršiti u petlji
ZAVRŠNA PETLJA;
KRAJ;
Loop_variable vam omogućuje da definirate petlju koja se koristi za kontrolu petlje i donje i gornje granice. Gornje i donje granice određuju vrijednosti raspona u kojima se događa procjena petlje.
Oracle while petlje
Također možemo definirati petlje 'while' u PL/SQL kao što je prikazano sljedećom sintaksom:
POČETIWHILE uvjet PETLJA
-- radnja petlje
ZAVRŠNA PETLJA;
KRAJ;
U petlji 'while', radnja petlje se ponavlja sve dok je uvjet istinit.
Oracle kursor za petlje
Oracle također podržava petlje 'pokazivača za' koje nam omogućuju izvršavanje skupa instrukcija za svaki red u zadanom skupu rezultata. Sintaksa se može izraziti na sljedeći način:
POČETIFOR petlja_varijabla IN (SELECT stupac1, stupac2, ...
OD tablice1, tablice2, ...
WHERE uvjet) PETLJA
-- radnja petlje
ZAVRŠNA PETLJA;
KRAJ;
Primjeri petlji u Oracleu
Sljedeći primjeri pokrivaju osnove rada s kursorskim petljama for, while i for u Oracleu.
Primjer Oracleove petlje:
Ovaj primjer pokazuje kako koristiti petlju 'for' za ispis brojeva od 1 do 10.
POČETIZA i U 1..10 PETLJA
DBMS_OUTPUT.PUT_LINE(i);
ZAVRŠNA PETLJA;
KRAJ;
Primjer petlje while:
Možemo izvesti sličnu radnju pomoću while petlje kao što je prikazano u nastavku:
POČETIPROGLASITI
i BROJ := 1;
POČETI
WHILE i <= 10 PETLJA
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
ZAVRŠNA PETLJA;
KRAJ;
KRAJ;
Ovo bi trebalo izvršiti radnju sličnu petlji 'for'.
Primjer petlje pokazivača:
Sljedeće pokazuje kako koristiti petlju 'pokazivač za' da biste dobili puno ime kupca:
POČETIZA zaposlenika IN (ODABERITE ime, prezime
OD zaposlenika) PETLJA
DBMS_OUTPUT.PUT_LINE(ime.zaposlenika || ' ' ||prezime.zaposlenika);
ZAVRŠNA PETLJA;
KRAJ;
Primjer izlaza:
Zaključak
U ovom postu naišli ste na tri glavne vrste petlji u Oracle PL/SQL jeziku. Možete provjeriti dokumentaciju za daljnje istraživanje.