λογισμικό

* Γνώση Υπολογιστών >> λογισμικό >> λογισμικού βάσεων δεδομένων

Πώς να χρησιμοποιήσετε ένα δρομέα για το REC σε Loop σε Oracle

Oracle ρητή δρομείς - αυτοί θα πρέπει φυσικά να δηλώσει - σας επιτρέπει να αφαιρέσετε το " ενιαία γραμμή " περιορισμός του κοινού προτάσεις SELECT . Αντί για την αντιγραφή και την αποθήκευση των τιμών της στήλης στο SELECT δήλωση μεταβλητών μία γραμμή κάθε φορά , ρητή δρομείς σας επιτρέπουν να εκτελέσετε ένα ερώτημα , μπορείτε να αποθηκεύσετε μια συλλογή των τιμών στη μνήμη και να πάει πίσω και να επεξεργαστεί κάθε αρχείο ξεχωριστά . Αυτό όχι μόνο μειώνει το χρόνο επεξεργασίας , αλλά και μειώνει την ποσότητα του κώδικα που πρέπει να γράψετε . Αυτοματοποίηση της διαδικασίας και να μειώσει περαιτέρω απαιτήσεις κωδικοποίησης χρησιμοποιώντας ένα δρομέα για rec βρόχο σε βρόχο μέσω και ανάκτηση πολλαπλών εγγραφών της βάσης δεδομένων . Οδηγίες
Η

1 Δημιουργήστε ή να κηρύξει τον κέρσορα κανονικά , δίνοντας ένα μοναδικό όνομα , συνδέοντάς το με μια κοινή δήλωση SELECT και στη συνέχεια να προσαρτήσει στην ενότητα δήλωση της λειτουργίας ή τη διαδικασία σας . Η δήλωση SELECT μπορεί να είναι απλή ή μπορεί να είναι πιο περίπλοκη , όπως ένα SELECT /ΠΟΥ /δήλωση GROUPBY . Αν, για παράδειγμα , θέλετε να χρησιμοποιήσετε ένα δρομέα για rec βρόχο για να ανακτήσετε την τρέχουσα μηνιαίο μισθό για κάθε ένα από τους υπαλλήλους σας και στη συνέχεια το σύνολο των ποσών αυτών , η πρόταση δήλωσης θα εμφανιστεί ως :

ΔΗΜΙΟΥΡΓΙΑ Ή ΑΝΤΙΚΑΤΑΣΤΑΣΗ SalaryExpense Λειτουργία ( name_in ΣΕ varchar2 ) Αριθμός ΕΠΙΣΤΡΟΦΗ varchar2IStotal_val ( 6 ) ?

ΔΗΛΩΝΟΥΝ δρομέα salary_cursor isselect monthly_salaryfrom employeeswhere name = name_in ?

BEGIN

( Αναφορά 1 - σελίδα 6 , 7 και αναφορά 2 ) 2

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

total_monthy_salary : = 0 ?

ΓΙΑ employee_rec σε salary_cursorLOOPtotal_monthy_salary : = total_monthy_salary + employee_rec.monthly_salary ? END LOOP ?

με 3

Εμφάνιση των αποτελεσμάτων και να τερματίσει τη λειτουργία ή διαδικασία :

ΕΠΙΣΤΡΟΦΗΣ total_monthy_salary ? ΤΕΛΟΣ ?
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα