..


Gesponsorde links

Recursieve structuren in PL / SQL

Voor de iteratieve structuren (ook wel iteratieve controles of, vaker, loops) zijn structuren die u toestaan ​​om te bladeren door een reeks van uitspraken tot een situatie zich voordoet, of het einde items aan "cyclus".
Kortom, de PL / SQL biedt drie verschillende types van flow control constructies iteratieve voor

  • Eenvoudige cyclus
  • WHILE lus
  • Lus
Ze verschillen in kleine dingen, die we zullen volgen, en om deze reden, in voorkomend geval, vinden we meer handig om een ​​in plaats van een ander gebruik.

Eenvoudige cyclus

De syntax van de eenvoudige cyclus is als volgt:






 LOOP



  



 Instructies;







 END LOOP;



Goed geschreven, hebben we vrij veel een oneindige lus. Om tot het klaar is, moeten we een exit staat. Dus, is de eenvoudige cyclus meestal gebruikt in de volgende vorm:





 LOOP



  



 Instructies;



  



 EXIT BIJ conditie;







 END LOOP;



Met behulp van het kan er als volgt uit:





 VERKLAREN



  



 Counter NUMBER (2): = 1;









 BEGIN



  



 LOOP

 

    



 teller: = teller +1;



    



 INSERT INTO log (bericht) VALUES ('Counter eenvoudige cyclus:' | | teller);



    



 EXIT Toen graaf> = 10;



  



 END LOOP;







 END;



We zullen dat onze counter variabele wordt met 1 verhoogd totdat het een waarde groter dan of gelijk aan 10, dan is onze lus zal worden beëindigd.

WHILE lus

De WHILE lus, herhalen we de volgorde van verklaringen, terwijl de aandoening is gecontroleerd (WAAR), eindigt wanneer het niet meer is (FALSE of NULL).
De aandoening wordt geëvalueerd voordat de lus, impliceert dit dat het FALSE is of NULL indien er geen opeenvolging van instructies is uitgevoerd.
Wat de eenvoudige cyclus, kan het nog steeds worden gedood door een EXIT statement. De syntax van de WHILE loop is als volgt:






 WHILE conditie







 LOOP



  



 Statement1;



  



 Statement2;



  



 ...;







 END LOOP;



Met behulp van het kan er als volgt uit:





 VERKLAREN



  



 Counter NUMBER (2): = 1;







 BEGIN



  



 WHILE teller <= 10



  



 LOOP



    



 teller: = teller +1;



    



 INSERT INTO log (bericht) VALUES ('counter loop:' | | teller);



  



 END LOOP;







 END;



Onze variabele is, in eerste instantie, de waarde 1, dan is de cyclus begint. De variabele wordt verhoogd tot aan de waarde 10, dan, omdat de conditie nog is gecontroleerd, is opnieuw gestegen. Op dit punt, de conditie is FALSE en de lus eindigt.

Lus

De FOR-lus, in tegenstelling tot de WHILE lus, kunt u wijst een reeks van waarden binnen om de conditie te controleren. U hoeft niet om de variabele te declareren, omdat het impliciet gedefinieerd binnen de lus. Bovendien, zoals we zullen zien, stelt ons in staat om op te treden op onze variabele niet alleen stap voor stap, maar afnemende. De syntax van de FOR-lus is als volgt:






 FOR counter in [REVERSE] min max ..







 LOOP



  



 Statement1;



  



 statement2;



  



 ...;







 END LOOP;



De teller wordt verhoogd met 1 bij elke cyclus impliciet, de cyclus eindigt wanneer zij de maximale waarde bereikt. Merk op dat als min groter is dan de maximale cyclus nooit is uitgevoerd.
Ook als u gebruik maken van de calusola REVERSE in plaats van IN, is de lus uitgevoerd door het toewijzen van de waarde aan de variabele maximum dat is, van tijd tot tijd, verlaagd met 1 tot aan de minimale waarde.
Met behulp van het kan er als volgt uit:





 VERKLAREN







 BEGIN



  



 FOR counter IN 1 .. 10



  



 LOOP



    



 INSERT INTO log (bericht) VALUES ('teller voor loop:' | | teller);



  



 END LOOP;







 END;



Onze variabele, die zoals we gezien hebben was niet nodig, verklaren met de waarde 1, wordt geleidelijk verhoogd tot aan de waarde 10 als de cyclus stopt.

Oracle Help
E-Learning
MS Access (Cursus) MS Access (Cursus)
Leer hoe het maken en beheren van databanken gemakkelijk en snel. Vanaf 29 €.
MySQL (Cursus) MySQL (Cursus)
Beheer van de open source database. Vanaf 39 €.
SQL en Database (Cursus) SQL en Database (Cursus)
Het creëren en beheren van relationele databases. Vanaf 39 €.
Gesponsorde links