Διαφορά μεταξύ του ρητού δρομέα και του περιγραφικού δρομέα

Anonim

Αυτός ο δρομέας είναι μια δομή ελέγχου που επιτρέπει τη διέλευση των εγγραφών σε μια βάση δεδομένων, όταν πρόκειται για βάσεις δεδομένων. Ένας δρομέας παρέχει έναν μηχανισμό για την εκχώρηση ενός ονόματος σε μια εντολή SQL select και στη συνέχεια μπορεί να χρησιμοποιηθεί για να χειριστεί τις πληροφορίες μέσα σε αυτήν την εντολή SQL. Οι προεπιλεγμένοι δρομείς δημιουργούνται και χρησιμοποιούνται αυτόματα κάθε φορά που εκδίδεται μια εντολή Select στο PL / SQL, όταν δεν υπάρχει ρητά καθορισμένος δρομέας. Οι ρητοί δρομείς, όπως υποδηλώνει το όνομα, καθορίζονται ρητά από τον προγραμματιστή. Στο PL / SQL ένας σαφής δρομέας είναι στην πραγματικότητα ένα όνομα που ορίζεται με τον κέρσορα λέξης κλειδιού.

Τι είναι Implicit Cursor;

Οι προεπιλεγμένοι δρομείς δημιουργούνται και χρησιμοποιούνται αυτόματα από την Oracle κάθε φορά που εκδίδεται μια εντολή select. Εάν χρησιμοποιείται ένας σιωπηλός δρομέας, το Σύστημα Διαχείρισης Βάσεων Δεδομένων (DBMS) θα εκτελέσει αυτόματα τις λειτουργίες ανοιχτού, φέροντος και κλεισίματος. Οι προεπιλεγμένοι δρομείς θα πρέπει να χρησιμοποιούνται μόνο με δηλώσεις SQL που επιστρέφουν μια μόνο σειρά. Εάν η εντολή SQL επιστρέφει περισσότερες από μία γραμμές, χρησιμοποιώντας έναν σιωπηλό δρομέα θα εμφανιστεί ένα σφάλμα. Ένας σιωπηλός δρομέας συνδέεται αυτόματα με τις δηλώσεις κάθε γλώσσας χειρισμού δεδομένων (DML), δηλαδή τις δηλώσεις INSERT, UPDATE και DELETE. Επίσης, χρησιμοποιείται ένας σιωπηλός δρομέας για τη διεκπεραίωση των εντολών SELECT INTO. Κατά την ανάκτηση δεδομένων με χρήση σιωπηρών δρομολογητών, η εξαίρεση NO_DATA_FOUND μπορεί να αυξηθεί όταν η δήλωση SQL δεν επιστρέφει δεδομένα. Επιπλέον, οι σιωπηλοί δρομείς μπορούν να αυξήσουν τις εξαιρέσεις TOO_MANY_ROWS όταν η εντολή SQL επιστρέφει περισσότερες από μία γραμμές.

Τι είναι ο ρητός δρομέας;

Όπως αναφέρθηκε προηγουμένως, οι ρητοί δρομείς είναι ερωτήματα που ορίζονται με χρήση ενός ονόματος. Ένας ρητός δρομέας μπορεί να θεωρηθεί ως δείκτης σε ένα σύνολο εγγραφών και ο δείκτης μπορεί να μετακινηθεί προς τα εμπρός εντός του συνόλου εγγραφών. Οι ρητές δρομείς παρέχουν στον χρήστη τον πλήρη έλεγχο του ανοίγματος, του κλεισίματος και της ανάκτησης δεδομένων. Επίσης, μπορούν να ληφθούν πολλές σειρές χρησιμοποιώντας έναν σαφή δρομέα. Οι ρητές δρομείς μπορούν επίσης να παίρνουν παραμέτρους όπως κάθε λειτουργία ή διαδικασία, έτσι ώστε οι μεταβλητές στον δρομέα να μπορούν να αλλάζουν κάθε φορά που εκτελείται. Επιπλέον, οι ρητοί δρομείς σας επιτρέπουν να μεταφέρετε μια ολόκληρη σειρά σε μια μεταβλητή εγγραφής PL / SQL. Όταν χρησιμοποιείτε έναν ρητό δρομέα, πρέπει πρώτα να δηλωθεί χρησιμοποιώντας ένα όνομα. Μπορείτε να έχετε πρόσβαση στα χαρακτηριστικά του δρομέα χρησιμοποιώντας το όνομα που δίνεται στο δρομέα. Μετά τη δήλωση, πρέπει πρώτα να ανοίξει ο δρομέας. Στη συνέχεια μπορεί να ξεκινήσει η ανάκτηση. Εάν χρειάζεται να φορτωθούν πολλές σειρές, η διαδικασία λήψης πρέπει να γίνει μέσα σε ένα βρόχο. Τέλος, ο δρομέας πρέπει να κλείσει.

Η διαφορά μεταξύ του ρητού δρομέα και του δρομέα

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