PL/SQL-silmukat

Pl Sql Silmukat



Silmukat ovat yksi ohjelmoinnin tärkeimmistä rakennuspalikoista. Luomme silmukoiden avulla hallittavia koodilohkoja, jotka voidaan suorittaa useita kertoja, kun tietty ehto on tosi. Ne ovat perusta, kun automatisoidaan toistuvia tehtäviä ilman, että kirjoitat koodilohkoa uudelleen useita kertoja.

Kuten kaikki suuret ohjelmointikielet, PL/SQL tukee silmukoita, jotka sallivat joukon käskyjä toistaa, kunnes tietty ehto täyttyy.

Tässä opetusohjelmassa tutkimme LOOP-käskyn käyttöä PL/SQL:ssä koodilohkon toistuvaan suorittamiseen.







Oracle Loops

PL/SQL-kieli tukee erilaisia ​​silmukkarakenteita, kuten 'for'- ja 'while'-silmukat. Voimme ilmaista yleisen silmukan syntaksin Oraclessa seuraavasti:



<< etiketti >> LOOP
loop_lauseke;
END LOOP loop_label;

Tämä sisältää LOOP-avainsanan ja suoritettavan silmukan rungon, ja se on suljettu avainsanan END LOOP kanssa.



LOOP-lohko suorittaa määritetyt toiminnot ja palauttaa ohjauksen ylimmän silmukan lauseeseen valmistumisen jälkeen. Tämä on yleensä suljettu EXIT- tai EXIT WHEN -lauseeseen silmukan päättämiseksi tietyn ehdon täyttyessä. Tämä auttaa estämään loputtomat silmukat.





Oracle For Loop -syntaksi:

Seuraavassa näkyy 'for'-silmukan syntaksi PL/SQL:ssä:

ALKAA
FOR silmukan_muuttuja IN [alaraja..ylempi_rajoitus] LOOP
-- silmukassa suoritettava koodi
END LOOP;
END;

Loop_variable -muuttujan avulla voit määrittää silmukan, jota käytetään ohjaamaan silmukkaa sekä ala- ja ylärajoja. Ylä- ja alarajat määrittävät alueen arvot, joissa silmukan arviointi tapahtuu.



Oracle While Loops

Voimme myös määritellä 'while'-silmukat PL/SQL:ssä seuraavan syntaksin osoittamalla tavalla:

ALKAA
WHILE kunto LOOP
-- silmukkatoiminto
END LOOP;
END;

'While'-silmukassa silmukkatoiminto suoritetaan toistuvasti, kun ehto on tosi.

Oracle Cursor for Loops

Oracle tukee myös 'cursor for' -silmukoita, joiden avulla voimme suorittaa joukon ohjeita jokaiselle riville tietyssä tulosjoukossa. Syntaksi voidaan ilmaista seuraavasti:

ALKAA
FOR silmukan_muuttuja IN (SELECT sarake1, sarake2, ...
FROM table1, table2, ...
WHERE ehto) LOOP
-- silmukkatoiminto
END LOOP;
END;

Esimerkkisilmukat Oraclessa

Seuraavat esimerkit kattavat Oraclen for-, while- ja for-kursorisilmukoiden kanssa työskentelyn perusteet.

Esimerkki Oracle For Loopista:

Tämä esimerkki osoittaa, kuinka 'for'-silmukkaa käytetään numeroiden tulostamiseen 1:stä 10:een.

ALKAA
FOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
END;

Esimerkki silmukan aikana:

Voimme suorittaa samanlaisen toiminnon käyttämällä while-silmukkaa seuraavan kuvan mukaisesti:

ALKAA
JULISTAA
i NUMERO := 1;
ALKAA
WHILE i <= 10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
END LOOP;
END;
END;

Tämän pitäisi suorittaa samanlainen toiminto kuin 'for'-silmukka.

Kursori silmukalle Esimerkki:

Seuraavassa näytetään, kuinka 'kursori for' -silmukkaa käytetään asiakkaan koko nimen saamiseksi:

ALKAA
FOR työntekijä IN (VALITSE etunimi, sukunimi
työntekijöiltä) LOOP
DBMS_OUTPUT.PUT_LINE(työntekijä.etunimi || ' ' || työntekijä.sukunimi);
END LOOP;
END;

Esimerkkituloste:

Johtopäätös

Tässä viestissä kohtasit kolme päätyyppiä silmukoita Oracle PL/SQL -kielellä. Voit tutustua asiakirjoihin tarkemmin.