PL/SQL-lussen

Pl Sql Lussen



Lussen zijn een van de belangrijkste bouwstenen bij het programmeren. We gebruiken lussen om de beheersbare codeblokken te maken die meerdere keren kunnen worden uitgevoerd wanneer aan een bepaalde voorwaarde wordt voldaan. Ze vormen het fundamentele bot bij het automatiseren van repetitieve taken zonder een codeblok meerdere keren te herschrijven.

Zoals alle grote programmeertalen ondersteunt PL/SQL loops waarmee een reeks instructies kan worden herhaald totdat aan een bepaalde voorwaarde is voldaan.

In deze zelfstudie onderzoeken we het gebruik van de LOOP-instructie in PL/SQL om herhaaldelijk een codeblok uit te voeren.







Oracle-lussen

De PL/SQL-taal ondersteunt de verschillende lusconstructies zoals 'for'-lus en 'while'-lussen. We kunnen de syntaxis van een generieke lus in Oracle uitdrukken, zoals hieronder wordt weergegeven:



<< etiket >> LUS
loop_statement;
EINDE LOOP loop_label;

Dit bevat het sleutelwoord LOOP en de hoofdtekst van de uit te voeren lus en is ingesloten met het sleutelwoord END LOOP.



Het LOOP-blok voert de gedefinieerde acties uit en stuurt de besturing na voltooiing terug naar de bovenste lus-clausule. Dit is meestal ingesloten in een EXIT- of EXIT WHEN-clausule om de lus te beëindigen nadat aan een specifieke voorwaarde is voldaan. Dit helpt de oneindige lussen te voorkomen.





Oracle For Loop-syntaxis:

Het volgende toont de syntaxis van een 'for'-lus in PL/SQL:

BEGINNEN
FOR loop_variable IN [ondergrens..bovengrens] LOOP
-- code die in de lus moet worden uitgevoerd
EINDE LUS;
EINDE;

Met de loop_variable kunt u een lus definiëren die wordt gebruikt om de lus en de onder- en bovengrenzen te regelen. De boven- en ondergrenzen specificeren de bereikwaarden waar de lusevaluatie plaatsvindt.



Oracle While-lussen

We kunnen ook de 'while'-lussen in PL/SQL definiëren, zoals blijkt uit de volgende syntaxis:

BEGINNEN
WHILE-voorwaarde LOOP
-- lus actie
EINDE LUS;
EINDE;

In een 'while'-lus wordt de lusactie herhaaldelijk uitgevoerd terwijl de voorwaarde waar is.

Oracle-cursor voor lussen

Oracle ondersteunt ook de 'cursor voor' loops waarmee we een set instructies kunnen uitvoeren voor elke rij in een bepaalde resultatenset. De syntaxis kan als volgt worden uitgedrukt:

BEGINNEN
FOR loop_variable IN (SELECTEER kolom1, kolom2, ...
VAN tafel1, tafel2, ...
WHERE-voorwaarde) LOOP
-- lus actie
EINDE LUS;
EINDE;

Voorbeeldlussen in Oracle

De volgende voorbeelden behandelen de basisprincipes van het werken met for-, while- en for-cursorlussen in Oracle.

Oracle For Loop-voorbeeld:

Dit voorbeeld laat zien hoe u een 'for'-lus gebruikt om de getallen van 1 tot 10 af te drukken.

BEGINNEN
VOOR i IN 1..10 LUS
DBMS_OUTPUT.PUT_LINE(i);
EINDE LUS;
EINDE;

Voorbeeld van While-lus:

We kunnen een vergelijkbare actie uitvoeren met een while-lus, zoals hieronder wordt weergegeven:

BEGINNEN
VERKLAREN
i AANTAL := 1;
BEGINNEN
WHILE i <= 10 LUS
DBMS_OUTPUT.PUT_LINE(i);
ik := ik + 1;
EINDE LUS;
EINDE;
EINDE;

Dit zou een soortgelijke actie moeten uitvoeren als de 'for' -lus.

Cursor voor lusvoorbeeld:

Hieronder ziet u hoe u de 'cursor voor'-lus gebruikt om de volledige naam van een klant te krijgen:

BEGINNEN
VOOR medewerker IN (SELECT voornaam, achternaam
VAN medewerkers) LOOP
DBMS_OUTPUT.PUT_LINE(werknemer.voornaam || ' ' || medewerker.achternaam);
EINDE LUS;
EINDE;

Voorbeelduitvoer:

Conclusie

In dit bericht kwam u drie hoofdtypen lussen tegen in de Oracle PL/SQL-taal. U kunt de documentatie raadplegen om verder te verkennen.