Oracle PL / SQL LOOP με Παράδειγμα

Πίνακας περιεχομένων:

Anonim

Τι είναι οι βρόχοι;

Το Loops επιτρέπει σε ένα μέρος του κώδικα σε ένα πρόγραμμα να εκτελεστεί για τον επιθυμητό αριθμό φορών.

Σε αυτό το σεμινάριο, θα δούμε την έννοια του βρόχου στο PL / SQL και τη ροή του ελέγχου σε βρόχους. Θα μάθεις-

  • Εισαγωγή στην έννοια των βρόχων
  • Δηλώσεις ελέγχου βρόχου
  • Τύποι βρόχων σε PL / SQL
  • Βασική δήλωση βρόχου
  • Επισήμανση βρόχων

Εισαγωγή στην έννοια των βρόχων

Το Loops concept παρέχει το ακόλουθο πλεονέκτημα στην κωδικοποίηση.

  • Επαναχρησιμοποίηση κώδικα
  • Μειωμένο μέγεθος κώδικα
  • Εύκολη ροή ελέγχου
  • Μειωμένη πολυπλοκότητα

Το παρακάτω διάγραμμα δείχνει την έννοια βρόχου με εικονογραφικό τρόπο

Στο παραπάνω διάγραμμα, η κατάσταση βρόχου θα ελεγχθεί και εφόσον πληρούται η κατάσταση βρόχου, θα εκτελεστεί το μπλοκ εκτέλεσης.

Σε κάθε επανάληψη, η μεταβλητή μετρητή βρόχου που αποφασίζει πραγματικά την κατάσταση βρόχου θα πρέπει να τροποποιηθεί για να κάνει τον έλεγχο να βγει από τον βρόχο. Σε ορισμένες περιπτώσεις, αυτή η μεταβλητή μετρητή βρόχου είναι τελεστής αύξησης / μείωσης για μια προκαθορισμένη μέτρηση και, σε ορισμένες περιπτώσεις, είναι μια συνθήκη αναζήτησης που συνεχίζει να εκτελεί το μπλοκ μέχρι να το ικανοποιήσει.

Δηλώσεις ελέγχου βρόχου

Πριν μάθετε την έννοια των βρόχων, είναι υποχρεωτικό να μάθετε για τις δηλώσεις ελέγχου βρόχου. Οι δηλώσεις ελέγχου βρόχου είναι αυτές που ελέγχουν πραγματικά τη ροή εκτέλεσης εντός του βρόχου. Ακολουθεί η λεπτομερής περιγραφή σχετικά με τις δηλώσεις ελέγχου βρόχου.

ΝΑ ΣΥΝΕΧΙΣΕΙ

Αυτή η λέξη-κλειδί στέλνει μια εντολή στον κινητήρα PL / SQL ότι κάθε φορά που η μηχανή PL / SQL συναντά αυτήν τη λέξη-κλειδί μέσα στον βρόχο, τότε θα παραλείψει τον υπόλοιπο κώδικα στο μπλοκ εκτέλεσης του κώδικα και η επόμενη επανάληψη θα ξεκινήσει αμέσως. Αυτό θα χρησιμοποιηθεί κυρίως εάν ο κώδικας εντός του βρόχου θέλει να παραλειφθεί για ορισμένες τιμές επανάληψης.

EXIT / EXIT ΠΟΤΕ

Αυτή η λέξη-κλειδί στέλνει μια εντολή στον κινητήρα PL / SQL ότι κάθε φορά που η μηχανή PL / SQL συναντά αυτήν τη λέξη-κλειδί, τότε θα βγεί αμέσως από τον τρέχοντα βρόχο. Εάν ο κινητήρας PL / SQL συναντήσει το EXIT σε ένθετο βρόχο, τότε θα βγει από τον βρόχο στον οποίο έχει οριστεί, δηλαδή σε ένθετους βρόχους, δίνοντας το EXIT στον εσωτερικό βρόχο θα βγει μόνο από τον έλεγχο από τον εσωτερικό βρόχο αλλά όχι από τον εξωτερικό βρόχο. Το «EXIT WHEN» ακολουθείται από μια έκφραση που δίνει ένα Boolean αποτέλεσμα. Εάν το αποτέλεσμα είναι ΑΛΗΘΕΙΑ, τότε το στοιχείο ελέγχου θα Βγει.

ΠΑΩ ΣΕ

Αυτή η δήλωση θα μεταφέρει το στοιχείο ελέγχου στη δήλωση με ετικέτα ("GOTO

  • Η μεταφορά του ελέγχου μπορεί να γίνει μόνο εντός των υποπρογραμμάτων.
  • Η μεταφορά του ελέγχου δεν μπορεί να γίνει από το τμήμα χειρισμού εξαίρεσης στο μέρος εκτέλεσης

Η χρήση αυτής της δήλωσης δεν συνιστάται, εκτός εάν δεν υπάρχουν άλλες εναλλακτικές λύσεις, καθώς η ανιχνευσιμότητα του κώδικα ελέγχου θα είναι πολύ δύσκολη στο πρόγραμμα λόγω της μεταφοράς του ελέγχου από το ένα μέρος στο άλλο μέρος.

Τύποι βρόχων σε PL / SQL

Το PL / SQL παρέχει τους ακόλουθους τρεις τύπους βρόχων

  • Βασική δήλωση βρόχου
  • Για δήλωση βρόχου
  • Ενώ η δήλωση βρόχου

Βασική δήλωση βρόχου

Αυτή η δήλωση βρόχου είναι η απλούστερη δομή βρόχου στο PL / SQL. Το μπλοκ εκτέλεσης ξεκινά με τη λέξη-κλειδί «LOOP» και τελειώνει με τη λέξη-κλειδί «END LOOP».

Η κατάσταση εξόδου πρέπει να δοθεί μέσα σε αυτό το μπλοκ εκτέλεσης, έτσι ώστε να ελέγχετε την έξοδο από το βρόχο.

Χρειάζεται η λέξη κλειδί EXIT να δοθεί ρητά στο μέρος εκτέλεσης για έξοδο από το βρόχο.

LOOPEND LOOP;
Επεξήγηση σύνταξης:
  • Στην παραπάνω σύνταξη, η λέξη κλειδί «LOOP» σηματοδοτεί την αρχή του βρόχου και το «END LOOP» σηματοδοτεί το τέλος του βρόχου.
  • Το μπλοκ εκτέλεσης περιέχει όλο τον κώδικα που πρέπει να εκτελεστεί, συμπεριλαμβανομένης της συνθήκης EXIT.
  • Το μέρος εκτέλεσης μπορεί να περιέχει οποιαδήποτε δήλωση εκτέλεσης.

Σημείωση: Η δήλωση βασικού βρόχου χωρίς λέξη-κλειδί EXIT θα είναι ένα INFINITE-LOOP που δεν θα σταματήσει ποτέ.

Παράδειγμα 1 : Σε αυτό το παράδειγμα, θα εκτυπώσουμε τον αριθμό από το 1 έως το 5 χρησιμοποιώντας τη βασική δήλωση βρόχου. Για αυτό, θα εκτελέσουμε τον ακόλουθο κώδικα.

DECLAREa NUMBER:=1;BEGINdbms_output.put_line('Program started.');LOOPdbms_output.put_line(a);a:=a+1;EXIT WHEN a>5;END LOOP;dbms_output.put_line('Program completed');END:/

Επεξήγηση κώδικα:

  • Γραμμή κώδικα 2 : Δήλωση της μεταβλητής «a» ως «ΑΡΙΘΜΟΣ» τύπος δεδομένων και αρχικοποίησή της με την τιμή «1».
  • Γραμμή κώδικα 4 : Εκτύπωση της δήλωσης "Το πρόγραμμα ξεκίνησε".
  • Γραμμή κώδικα 5: Η λέξη-κλειδί «LOOP» σηματοδοτεί την αρχή του βρόχου.
  • Γραμμή κώδικα 6: Εκτυπώνει την τιμή του «a».
  • Γραμμή κώδικα 7: Αυξάνει την τιμή του «a» κατά +1.
  • Γραμμή κωδικού 8: Ελέγχει εάν η τιμή του «a» είναι μεγαλύτερη από 5.
  • Γραμμή κώδικα 9: Η λέξη-κλειδί «END LOOP» σηματοδοτεί το τέλος του μπλοκ εκτέλεσης.
  • Ο κωδικός από τη γραμμή 6 έως τη γραμμή 8 θα συνεχίσει να εκτελείται έως ότου το «a» φτάσει στην τιμή 6, καθώς η συνθήκη θα επιστρέψει ΑΛΗΘΕΙΑ, και ο έλεγχος θα Βγει από το βρόχο.
  • Γραμμή κωδικού 10: Εκτύπωση της δήλωσης "Το πρόγραμμα ολοκληρώθηκε"

Επισήμανση βρόχων

Στο PL / SQL, οι βρόχοι μπορούν να επισημανθούν. Η ετικέτα πρέπει να περικλείεται μεταξύ "<<" και ">>". Η επισήμανση των βρόχων ιδιαίτερα σε κωδικούς ένθετου βρόχου θα δώσει μεγαλύτερη αναγνωσιμότητα. Η ετικέτα μπορεί να δοθεί στην εντολή EXIT για έξοδο από τον συγκεκριμένο βρόχο. Χρησιμοποιώντας την ετικέτα, ο έλεγχος μπορεί να γίνει για άμεση έξοδο από τον εξωτερικό βρόχο των ένθετων βρόχων από οποιοδήποτε σημείο μέσα στους βρόχους, δίνοντας την εντολή εξόδου ακολουθούμενη από την ετικέτα εξωτερικού βρόχου.

<>LOOP  . <> LOOP --inner  END LOOP; . END LOOP;
Επεξήγηση σύνταξης:
  • Στην παραπάνω σύνταξη, ο έξω βρόχος έχει έναν ακόμη βρόχο μέσα του.
  • Οι ετικέτες "<>" και "<>" είναι οι ετικέτες αυτών των βρόχων.

Παράδειγμα 1 : Σε αυτό το παράδειγμα, θα εκτυπώσουμε τον αριθμό ξεκινώντας από το 1 χρησιμοποιώντας τη δήλωση Basic loop. Κάθε αριθμός θα εκτυπωθεί όσες φορές η αξία του. Το ανώτατο όριο της σειράς καθορίζεται στο τμήμα δήλωσης προγράμματος. Ας μάθουμε πώς μπορούμε να χρησιμοποιήσουμε την έννοια της ετικέτας για να το επιτύχουμε. Για αυτό, θα εκτελέσουμε τον ακόλουθο κώδικα

DECLAREa NUMBER:=0;b NUMBER;upper-limit NUMBER :=4;BEGINdbms_output.put_line(‘Program started.' );«outerloop»‭ ‬LOOPa:=a+1;b:=l;«inner loop»LOOPEXIT outer_loop WHEN a > upper_limit;dbms_output.put_line(a);b:=b+l;EXIT inner_loop WHEN b>a;END LOOP;END LOOP;dbms_output.put_line('Program completed.');END;/

Επεξήγηση κώδικα:

  • Γραμμή κώδικα 2-3 : Δήλωση της μεταβλητής «a» και «b» ως τύπου δεδομένων «ΑΡΙΘΜΟΣ».
  • Γραμμή κώδικα 4 : Δήλωση της μεταβλητής «upper_limit» ως «ΑΡΙΘΜΟΣ» τύπος δεδομένων με την τιμή «4»
  • Γραμμή κώδικα 6 : Εκτύπωση της δήλωσης "Το πρόγραμμα ξεκίνησε".
  • Γραμμή κώδικα 7: Ο εξωτερικός βρόχος έχει επισημανθεί ως "external_loop"
  • Γραμμή κώδικα 9: Η τιμή του «a» αυξάνεται κατά 1.
  • Γραμμή κώδικα 11: Ο εσωτερικός βρόχος έχει χαρακτηριστεί ως "inner_loop".
  • Γραμμή κώδικα 13: Συνθήκη ΕΞΟΔΟΥ που ελέγχει εάν η τιμή «a» είναι υψηλότερη από την τιμή «άνω_limit». Εάν όχι τότε θα προχωρήσει περισσότερο, αλλιώς βγαίνει απευθείας από τον εξωτερικό βρόχο.
  • Γραμμή κώδικα 14: Εκτύπωση της τιμής «b».
  • Γραμμή κώδικα 15: Αυξάνει την τιμή του «b» κατά +1.
  • Γραμμή κώδικα 16: Συνθήκη EXIT που ελέγχει εάν η τιμή του «b» είναι υψηλότερη από το «a». Εάν ναι, τότε θα βγει από τον έλεγχο από τον εσωτερικό βρόχο.
  • Γραμμή κώδικα 14: Εκτύπωση της δήλωσης "Το πρόγραμμα ολοκληρώθηκε"

Περίληψη

Βρόχος Βασικός βρόχος
Κριτήρια EXIT Έξοδος όταν συναντά τη λέξη-κλειδί «EXIT» στο μέρος εκτέλεσης
Χρήση Καλό στη χρήση όταν η έξοδος δεν βασίζεται σε συγκεκριμένη κατάσταση