Όπως όλες οι κύριες γλώσσες προγραμματισμού, η PL/SQL υποστηρίζει βρόχους που επιτρέπουν την επανάληψη ενός συνόλου εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη.
Σε αυτό το σεμινάριο, θα διερευνήσουμε τη χρήση της δήλωσης LOOP σε PL/SQL για την επανειλημμένη εκτέλεση ενός μπλοκ κώδικα.
Oracle Loops
Η γλώσσα PL/SQL υποστηρίζει τις διάφορες δομές βρόχου, όπως βρόχους 'for' και βρόχους 'while'. Μπορούμε να εκφράσουμε τη σύνταξη ενός γενικού βρόχου στο Oracle όπως φαίνεται παρακάτω:
<< επιγραφή >> ΒΡΟΧΟΣ
loop_statement;
END LOOP loop_label;
Αυτό περιέχει τη λέξη-κλειδί LOOP και το σώμα του βρόχου προς εκτέλεση και περικλείεται με τη λέξη-κλειδί END LOOP.
Το μπλοκ LOOP εκτελεί τις καθορισμένες ενέργειες και επιστρέφει το στοιχείο ελέγχου στον όρο του επάνω βρόχου μετά την ολοκλήρωση. Αυτό συνήθως περικλείεται σε μια ρήτρα EXIT ή EXIT WHEN για τον τερματισμό του βρόχου μετά την εκπλήρωση μιας συγκεκριμένης συνθήκης. Αυτό βοηθά στην αποτροπή των άπειρων βρόχων.
Σύνταξη Oracle For Loop:
Το παρακάτω δείχνει τη σύνταξη ενός βρόχου 'for' σε PL/SQL:
ΑΡΧΙΣΕΙFOR loop_variable IN [lower_bound..upper_bound] LOOP
-- κώδικας που θα εκτελεστεί στον βρόχο
END LOOP;
ΤΕΛΟΣ;
Το loop_variable σάς επιτρέπει να ορίσετε έναν βρόχο που χρησιμοποιείται για τον έλεγχο του βρόχου και των κάτω και άνω ορίων. Τα άνω και κάτω όρια καθορίζουν τις τιμές εύρους όπου γίνεται η αξιολόγηση βρόχου.
Oracle while Loops
Μπορούμε επίσης να ορίσουμε τους βρόχους 'while' στο PL/SQL όπως αποδεικνύεται από την ακόλουθη σύνταξη:
ΑΡΧΙΣΕΙWHILE κατάσταση LOOP
-- δράση βρόχου
END LOOP;
ΤΕΛΟΣ;
Σε έναν βρόχο 'while', η ενέργεια του βρόχου εκτελείται επανειλημμένα ενώ η συνθήκη είναι αληθής.
Δρομέας Oracle για βρόχους
Η Oracle υποστηρίζει επίσης τους βρόχους 'δρομέας για' που μας επιτρέπουν να εκτελέσουμε ένα σύνολο εντολών για κάθε σειρά σε ένα δεδομένο σύνολο αποτελεσμάτων. Η σύνταξη μπορεί να εκφραστεί ως εξής:
ΑΡΧΙΣΕΙFOR loop_variable IN (ΕΠΙΛΟΓΗ στήλη1, στήλη2, ...
ΑΠΟ πίνακα 1, πίνακα 2, ...
WHERE συνθήκη) LOOP
-- δράση βρόχου
END LOOP;
ΤΕΛΟΣ;
Παραδείγματα βρόχων στο Oracle
Τα ακόλουθα παραδείγματα καλύπτουν τα βασικά της εργασίας με βρόχους δρομέα for, while και για στο Oracle.
Παράδειγμα Oracle For Loop:
Αυτό το παράδειγμα δείχνει πώς να χρησιμοποιήσετε έναν βρόχο 'για' για να εκτυπώσετε τους αριθμούς από το 1 έως το 10.
ΑΡΧΙΣΕΙFOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
ΤΕΛΟΣ;
Παράδειγμα while Loop:
Μπορούμε να εκτελέσουμε μια παρόμοια ενέργεια χρησιμοποιώντας έναν βρόχο while όπως φαίνεται παρακάτω:
ΑΡΧΙΣΕΙΔΗΛΩΝΩ
i ΑΡΙΘΜΟΣ := 1;
ΑΡΧΙΣΕΙ
WHILE i <= 10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
END LOOP;
ΤΕΛΟΣ;
ΤΕΛΟΣ;
Αυτό θα πρέπει να εκτελέσει μια παρόμοια ενέργεια με τον βρόχο 'για'.
Παράδειγμα δρομέα για βρόχο:
Το παρακάτω δείχνει πώς να χρησιμοποιήσετε τον βρόχο 'δρομέας για' για να λάβετε το πλήρες όνομα ενός πελάτη:
ΑΡΧΙΣΕΙΓΙΑ εργαζόμενο IN (ΕΠΙΛΕΞΤΕ όνομα, επώνυμο
ΑΠΟ υπαλλήλους) LOOP
DBMS_OUTPUT.PUT_LINE(employee.first_name || ' ' || υπάλληλος.επώνυμο);
END LOOP;
ΤΕΛΟΣ;
Παράδειγμα εξόδου:
συμπέρασμα
Σε αυτήν την ανάρτηση, συναντήσατε τρεις κύριους τύπους βρόχων στη γλώσσα Oracle PL/SQL. Μπορείτε να ελέγξετε την τεκμηρίωση για περαιτέρω εξερεύνηση.