Podobnie jak wszystkie główne języki programowania, PL/SQL obsługuje pętle, które umożliwiają powtarzanie zestawu instrukcji, dopóki nie zostanie spełniony określony warunek.
W tym samouczku przyjrzymy się wykorzystaniu instrukcji LOOP w języku PL/SQL do wielokrotnego wykonywania bloku kodu.
Pętle Oracle
Język PL/SQL obsługuje różne konstrukcje pętli, takie jak pętle „for” i „while”. Możemy wyrazić składnię ogólnej pętli w Oracle, jak pokazano poniżej:
<< etykieta >> PĘTLA
instrukcja_pętli;
KONIEC PĘTLI etykieta_pętli;
Zawiera słowo kluczowe LOOP i treść pętli do wykonania i jest dołączone do słowa kluczowego END LOOP.
Blok LOOP uruchamia zdefiniowane akcje i zwraca sterowanie do klauzuli górnej pętli po zakończeniu. Zwykle jest to zawarte w klauzuli EXIT lub EXIT WHEN, aby zakończyć pętlę po spełnieniu określonego warunku. Pomaga to uniknąć nieskończonych pętli.
Oracle dla składni pętli:
Poniżej przedstawiono składnię pętli „for” w języku PL/SQL:
ROZPOCZĄĆFOR pętli_zmienna IN [dolna_granica..górna_granica] PĘTLA
-- kod do wykonania w pętli
KONIEC PĘTLI;
KOŃCZYĆ SIĘ;
Loop_variable pozwala zdefiniować pętlę, która jest używana do kontrolowania pętli oraz dolnych i górnych granic. Górne i dolne granice określają wartości zakresu, w których występuje ocena pętli.
Oracle while pętli
Możemy również zdefiniować pętle „while” w PL/SQL, co pokazuje następująca składnia:
ROZPOCZĄĆPĘTLA warunku WHILE
-- działanie w pętli
KONIEC PĘTLI;
KOŃCZYĆ SIĘ;
W pętli „while” akcja pętli jest wykonywana wielokrotnie, dopóki warunek jest prawdziwy.
Kursor Oracle dla pętli
Oracle obsługuje również pętle „kursor for”, dzięki którym możemy wykonać zestaw instrukcji dla każdego wiersza w danym zestawie wyników. Składnię można wyrazić w następujący sposób:
ROZPOCZĄĆFOR pętla_zmienna IN (WYBIERZ kolumnę 1, kolumnę 2, ...
Z tabeli 1, tabeli 2, ...
GDZIE warunek) PĘTLA
-- działanie w pętli
KONIEC PĘTLI;
KOŃCZYĆ SIĘ;
Przykładowe pętle w Oracle
Poniższe przykłady obejmują podstawy pracy z pętlami kursora for, while i for w Oracle.
Przykład pętli Oracle For:
Ten przykład pokazuje, jak używać pętli „for” do drukowania liczb od 1 do 10.
ROZPOCZĄĆFOR i W PĘTLI 1..10
DBMS_OUTPUT.PUT_LINE(i);
KONIEC PĘTLI;
KOŃCZYĆ SIĘ;
Przykład pętli while:
Możemy wykonać podobną akcję za pomocą pętli while, jak pokazano poniżej:
ROZPOCZĄĆOGŁOSIĆ
i LICZBA := 1;
ROZPOCZĄĆ
GDY i <= 10 PĘTLA
DBMS_OUTPUT.PUT_LINE(i);
ja := ja + 1;
KONIEC PĘTLI;
KOŃCZYĆ SIĘ;
KOŃCZYĆ SIĘ;
Powinno to wykonać podobną akcję do pętli „for”.
Przykład kursora dla pętli:
Poniżej pokazano, jak użyć pętli „kursor do”, aby uzyskać pełne imię i nazwisko klienta:
ROZPOCZĄĆFOR pracownik IN (WYBIERZ imię, nazwisko
OD pracowników) PĘTLA
DBMS_OUTPUT.PUT_LINE(pracownik.imię || ' ' || pracownik.nazwisko);
KONIEC PĘTLI;
KOŃCZYĆ SIĘ;
Przykładowe dane wyjściowe:
Wniosek
W tym poście spotkałeś się z trzema głównymi typami pętli w języku Oracle PL/SQL. Możesz sprawdzić dokumentację, aby dowiedzieć się więcej.