pl sql package oracle pl sql package tutorial with examples
Μάθετε για το PL SQL Package, τα πλεονεκτήματα, τις προδιαγραφές και τη δομή του:
Σε αυτό το άρθρο, θα συνεχίσουμε με Σειρά PL / SQL . Στο Εγγραφές PL SQL μάθημα, έχουμε μάθει για τις εγγραφές και τους τύπους εγγραφών με παραδείγματα προγραμματισμού.
Εδώ θα διερευνήσουμε πακέτα σε PL / SQL και μερικά σημαντικά χαρακτηριστικά των πακέτων. Επίσης, θα συζητήσουμε μερικές από τις βασικές λειτουργίες σε αυτές.
Θα συζητήσουμε επίσης τα πακέτα dbms_ouput στο PL / SQL και στα υποπρογράμματά του.
Ας ξεκινήσουμε με τα μαθήματα !!
Τι θα μάθετε:
Πακέτο SQL PL
Ένα πακέτο είναι ένα αντικείμενο με τη μορφή σχήματος που διαχωρίζει λογικά συνδεδεμένα στοιχεία, τύπους και υποπρογράμματα σε PL / SQL. Ένα πακέτο αποτελείται από δύο μέρη: Προδιαγραφές συσκευασίας και Σώμα συσκευασίας ή ορισμός .
Η προδιαγραφή πακέτου είναι σαν μια διεπαφή της εφαρμογής και χρησιμοποιείται για να δηλώσει μεταβλητές, σταθερές, τύπους, εξαιρέσεις, δρομείς και υποπρογράμματα. Το σώμα ενός πακέτου εφαρμόζει τα υποπρογράμματα και τους δρομείς που δηλώνονται στις προδιαγραφές του πακέτου.
Μπορούμε να ενημερώσουμε, να διορθώσουμε ή να αλλάξουμε ένα σώμα πακέτου χωρίς να αγγίξουμε τις προδιαγραφές του πακέτου (ονομάζεται επίσης διεπαφή στο πακέτο).
Πλεονεκτήματα του πακέτου PL / SQL
Τα πλεονεκτήματα του πακέτου αναφέρονται παρακάτω:
- Δίνει modularity στον κώδικα μας.
- Βοηθά στον σχεδιασμό της εφαρμογής εύκολα.
- Το πακέτο PLSQL βοηθά στην απόκρυψη πληροφοριών με τη βοήθεια δημόσιων και ιδιωτικών αντικειμένων, τύπων δεδομένων και υποπρογραμμάτων.
- Το πακέτο επιτρέπει τη διατήρηση πληροφοριών για όλες τις συναλλαγές χωρίς να απαιτείται αποθήκευση στη βάση δεδομένων.
- Τα πακέτα συμβάλλουν στη βελτίωση της απόδοσης εκτέλεσης.
Προδιαγραφή πακέτου
Μια προδιαγραφή πακέτου είναι σαν μια διεπαφή με το πακέτο. Φροντίζει για τη δήλωση μεταβλητών, σταθερών, τύπων, εξαιρέσεων, δρομέων και υποπρογραμμάτων. Έτσι, έχει όλες τις λεπτομέρειες σχετικά με το περιεχόμενο του πακέτου, αλλά δεν έχει την εφαρμογή των υποπρογραμμάτων.
Τα αντικείμενα μέσα σε μια προδιαγραφή πακέτου είναι δημόσια αντικείμενα. Όλα τα υποπρογράμματα που εφαρμόζονται σε ένα σώμα πακέτων είναι ιδιωτικά αντικείμενα. Μπορούμε να δηλώσουμε πολλές καθολικές μεταβλητές, συναρτήσεις ή διαδικασίες εντός των προδιαγραφών του πακέτου.
Η προδιαγραφή πακέτου είναι μια ανεξάρτητη οντότητα και μπορεί να υπάρχει χωρίς σώμα πακέτου.
Εφαρμογή κώδικα:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
Η έξοδος του παραπάνω κώδικα:
Σώμα συσκευασίας
Το σώμα του πακέτου περιέχει την εφαρμογή των δρομέων και των υποπρογραμμάτων που δηλώνονται στις προδιαγραφές του πακέτου. Πρέπει να θυμόμαστε ότι τα υποπρογράμματα που εφαρμόζονται στο σώμα του πακέτου είναι προσβάσιμα εκτός του πακέτου, με την προϋπόθεση ότι δηλώνονται στις προδιαγραφές του πακέτου.
Το υποπρόγραμμα που δηλώνεται στην προδιαγραφή του πακέτου και στο σώμα πρέπει να είναι ακριβές. Αυτή η σύγκριση γίνεται token-by-token των κεφαλίδων τους. Σε περίπτωση που δεν ταιριάζουν, το PL / SQL ρίχνει μια εξαίρεση.
πώς να υποβάλετε μια αναφορά σφάλματος
Το σώμα του πακέτου μπορεί να περιέχει άλλα υποπρογράμματα που δεν δηλώνονται στις προδιαγραφές του πακέτου. Σε αυτήν την περίπτωση, αυτά είναι ιδιωτικά μόνο σε αυτό το σώμα συσκευασίας. ΔΗΜΙΟΥΡΓΙΑ ΣΩΜΑΤΟΣ ΣΥΣΚΕΥΑΣΙΑΣ είναι η λέξη-κλειδί που χρησιμοποιείται για τη δημιουργία ενός σώματος πακέτων.
Ας πάρουμε ένα παράδειγμα για να δημιουργήσουμε το σώμα του πακέτου για το οι άλλοι πακέτο.
Εφαρμογή κώδικα με σώμα πακέτου.
CREATE OR REPLACE PACKAGE BODY citi AS --function implemented FUNCTION p_strng RETURN VARCHAR2 IS BEGIN RETURN 'Software Testing Help!'; END p_strng; END citi; /
Η έξοδος του παραπάνω κώδικα πρέπει να είναι.
Ανατρέξτε στο Στοιχεία συσκευασίας
Καθώς τελειώσαμε με τη δήλωση των στοιχείων στην προδιαγραφή του πακέτου και την εφαρμογή τους στο σώμα του πακέτου, πρέπει να αναφερθούμε σε αυτά τα στοιχεία. Τα στοιχεία πακέτου αποτελούνται από τις συναρτήσεις, τις διαδικασίες και τις μεταβλητές.
Αυτά τα δημόσια στοιχεία του πακέτου μπορούν να προσπελαστούν από το όνομα του πακέτου ακολουθούμενο από το όνομα του στοιχείου που διαχωρίζεται με τη σημείωση τελείας (.).
Σύνταξη:
package_name.element_name;
Εφαρμογή κωδικοποίησης για πρόσβαση σε στοιχεία:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Η έξοδος του παραπάνω κώδικα:
Δημιουργήστε ένα πακέτο PL SQL
Εάν ένα πακέτο καλείται ή αναφέρεται σε μια συνεδρία, δημιουργείται μια νέα παρουσία αυτού του πακέτου σε PL / SQL. Έχουμε την επιλογή να αρχικοποιήσουμε τα στοιχεία του πακέτου ή να εκτελέσουμε οποιεσδήποτε άλλες ενέργειες κατά τη δημιουργία παρουσίας με το μπλοκ κώδικα Initialization πακέτου. Αυτό είναι το εκτελέσιμο μπλοκ κώδικα μέσα στο σώμα του πακέτου μετά την αρχικοποίηση των στοιχείων του πακέτου.
Σύνταξη δημιουργίας πακέτων:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
Εδώ, το package_n είναι το όνομα του πακέτου.
Υπερφόρτωση ενός πακέτου
Μπορεί να υπάρχουν πολλά υποπρογράμματα σε ένα πακέτο με παρόμοια ονόματα. Αυτή η δυνατότητα είναι χρήσιμη εάν θέλουμε να έχουμε ομοιογενείς παραμέτρους με ετερογενείς τύπους δεδομένων. Η έννοια της υπερφόρτωσης στο πακέτο επιτρέπει στους προγραμματιστές να αναφέρουν σαφώς τον τύπο δράσης που θέλουν να εκτελέσουν.
δοκιμάστε τον ιστότοπο σε διαφορετικά προγράμματα περιήγησης στο διαδίκτυο
Εφαρμογή κωδικοποίησης με υπερφόρτωση διαδικασίας. (Το πακέτο δημιουργήθηκε):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
Η έξοδος του παραπάνω κώδικα:
Εφαρμογή κωδικοποίησης με υπερφόρτωση διαδικασίας. (Το σώμα του πακέτου δημιουργήθηκε)
CREATE OR REPLACE PACKAGE BODY overloadingprocedure AS --procedure implemented Procedure overl_method (p varchar2) AS BEGIN DBMS_OUTPUT.PUT_LINE ('First Procedure: ' || p); END; --procedure implemented Procedure overl_method (numbr number) AS BEGIN DBMS_OUTPUT.PUT_LINE ('Second Procedure: ' || numbr); END; END; /
Η έξοδος του παραπάνω κώδικα:
Εφαρμογή κωδικοποίησης με υπερφόρτωση διαδικασίας. (Αναφορά διαδικασίας πακέτου)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
Η έξοδος του παραπάνω κώδικα:
Εξάρτηση πακέτου PLSQL
Οι εξαρτήσεις πακέτων σε PL / SQL παρατίθενται παρακάτω:
- Μια προδιαγραφή πακέτου είναι μια ανεξάρτητη ταυτότητα.
- Το σώμα του πακέτου εξαρτάται από τις προδιαγραφές του πακέτου.
- Ένα σώμα συσκευασίας μπορεί να καταρτιστεί μόνο ξεχωριστά. Ωστόσο, εάν καταρτιστεί μια προδιαγραφή πακέτου, τότε το σώμα πρέπει να μεταγλωττιστεί ξανά.
- Η λειτουργία ή μια διαδικασία μέσα σε ένα σώμα πακέτου που εξαρτάται από τα ιδιωτικά στοιχεία θα πρέπει να εφαρμοστεί μετά τη δήλωση των ιδιωτικών στοιχείων.
Οδηγίες για τη δημιουργία ενός πακέτου σε PL SQL:
- Ένα πακέτο πρέπει να είναι γραμμένο με γενικούς όρους, ώστε να μπορεί να επαναχρησιμοποιηθεί στο μέλλον.
- Αποφύγετε τα διπλά χαρακτηριστικά σε ένα πακέτο.
- Η προδιαγραφή του πακέτου περιέχει το κλειδί για μια σωστά σχεδιασμένη εφαρμογή. Πλήρης προδιαγραφή πακέτου πριν από τη δημιουργία του σώματος του πακέτου.
- Μια προδιαγραφή πακέτου πρέπει να περιέχει μόνο στοιχεία, υποπρογράμματα και τύπους που πρέπει να είναι προσβάσιμοι από τους χρήστες του πακέτου. Δεν πρέπει να έχει περιττές πληροφορίες εφαρμογής.
- Η προδιαγραφή του πακέτου πρέπει να περιέχει περιορισμένο αριθμό αντικειμένων. Θα εξοικονομήσει χρόνο για την ανακατασκευή του κώδικα ως τροποποίηση των προδιαγραφών του πακέτου απαιτεί το PL / SQL να μεταγλωττίσει όλα τα υποπρογράμματα που αναφέρονται στο πακέτο.
Πληροφορίες πακέτου σε PL / SQL
Όλες οι σχετικές λεπτομέρειες όπως η πηγή του πακέτου, τα υποπρογράμματα και τα υπερφορτωμένα στοιχεία αποθηκεύονται σε πίνακες ορισμού δεδομένων μετά τη δημιουργία ενός πακέτου.
Η λίστα των πινάκων ορισμού δεδομένων έχει ως εξής:
- ΧΡΗΣΤΕΣ_ΔΙΑΔΙΚΑΣΙΕΣ: Αυτός ο πίνακας περιέχει πληροφορίες υποπρογράμματος όπως τα υπερφορτωμένα στοιχεία, το αντικείμενο_id και ούτω καθεξής για τον τρέχοντα χρήστη.
- ΟΛΕΣ_ ΔΙΑΔΙΚΑΣΙΕΣ: Αυτός ο πίνακας περιέχει πληροφορίες υποπρογράμματος, όπως τα υπερφορτωμένα στοιχεία, το αντικείμενο_id και ούτω καθεξής για όλους τους χρήστες.
- USER_SOURCE: Αυτός ο πίνακας περιέχει τις πληροφορίες σχετικά με την πηγή αντικειμένου για τον τρέχοντα χρήστη.
- ALL_SOURCE: Αυτός ο πίνακας περιέχει τις πληροφορίες σχετικά με την πηγή αντικειμένου για όλους τους χρήστες.
- ALL_OBJECT: Αυτός ο πίνακας περιέχει τις πληροφορίες σχετικά με το πακέτο, όπως η δημιουργία_ ημερομηνία, το αντικείμενο_id και άλλες λεπτομέρειες αντικειμένου για όλους τους χρήστες.
Έξοδος DBMS σε PL / SQL
Το πακέτο DBMS_OUTPUT επιτρέπει την εμφάνιση της εξόδου PL / SQL που παράγεται από υποπρογράμματα και μπλοκ κώδικα. Αυτό μας βοηθά να εντοπίσουμε σφάλματα, να δοκιμάσουμε τον κώδικα και να στείλουμε μηνύματα.
ο put_line Η διαδικασία παράγει τα δεδομένα εξόδου σε ένα buffer. Οι πληροφορίες εμφανίζονται με τη βοήθεια του get_line διαδικασία ή ρυθμίζοντας το SERVEROUTPUT ON στο SQL * Plus.
Το πακέτο DBMS_OUTPUT περιέχει τα ακόλουθα υποπρογράμματα:
Sl Όχι. | Ονομα | Σκοποί |
---|---|---|
ένας | DBMS_OUTPUT.DISABLE | Περιορίζει την έξοδο μηνύματος. |
δύο | DBMS_OUTPUT.ENABLE (buffer IN INEGER DEFAULT 20000) | Επιτρέπει την έξοδο μηνύματος. Εάν το buffer έχει ρυθμιστεί σε NULL, αντιπροσωπεύει απεριόριστο μέγεθος του buffer. |
3 | DBMS_OUTPUT.GET_LINE (γραμμή OUT VARCHAR, κατάσταση OUT NUMBER) | Ανακτά μια αποθηκευμένη πληροφορία σε μία γραμμή. |
4 | DBMS_OUTPUT.NEW_LINE | Τερματίζει ένα δείκτη τέλους γραμμής. |
5 | DBMS_OUTPUT.PUT (στοιχείο ΣΤΟ VARCHAR) | Βάζει μια ατελή γραμμή στο buffer. |
6 | DBMS_OUTPUT.PUT_LINE (στοιχείο ΣΤΟ VARCHAR) | Βάζει μια πλήρη γραμμή στο buffer. |
Εφαρμογή κώδικα:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
Η έξοδος του παραπάνω κώδικα:
Συχνές Ερωτήσεις και Απαντήσεις
Q # 1) Τι είναι το πακέτο σε PL SQL;
Απάντηση: Ένα πακέτο είναι ένα σχήμα αντικειμένου που κατηγορεί λογικά σχετικές μεταβλητές, σταθερές, δρομείς, υποπρογράμματα και τύπους.
Q # 2) Ποια είναι τα οφέλη των πακέτων PL SQL;
Απάντηση: Τα οφέλη του πακέτου παρατίθενται παρακάτω:
- Με πακέτα, γίνεται εύκολο να σχεδιάσετε εφαρμογές.
- Με πακέτα, μπορούμε να επιτύχουμε ενθυλάκωση.
- Τα πακέτα συμβάλλουν στην καλύτερη απόδοση από την άποψη της ταχύτητας εκτέλεσης.
- Ο κωδικός γίνεται πιο αρθρωτός με πακέτα.
Q # 3) Μπορούμε να δημιουργήσουμε ένα σώμα πακέτου χωρίς προδιαγραφές;
Απάντηση: Ναι, μπορούμε να δημιουργήσουμε ένα σώμα πακέτου χωρίς προδιαγραφές πακέτου.
Q # 4) Τι είναι το Dbms_output Put_line στο PL SQL;
Απάντηση: Το dbms_output put_line είναι μια διαδικασία στο Oracle που μας επιτρέπει να γράφουμε πληροφορίες σε ένα επίπεδο αρχείο ή στην οθόνη εξόδου PL / SQL.
Q # 5) Τι είναι το Dbms_output;
Απάντηση: Το dbms_output είναι ένα προεπιλεγμένο πακέτο που μας επιτρέπει να εμφανίζουμε πληροφορίες εντοπισμού σφαλμάτων, να εξάγουμε και να στέλνουμε μηνύματα από τα υποπρογράμματα, τους κανόνες ετικέτας, τα πακέτα και το μπλοκ κώδικα PL / SQL
ποια υπηρεσία email πρέπει να χρησιμοποιήσω
συμπέρασμα
Σε αυτό το σεμινάριο, έχουμε συζητήσει λεπτομερώς ορισμένες βασικές έννοιες σχετικά με τα πακέτα PL SQL που είναι απαραίτητες για τη χρήση τους σε πραγματικές εφαρμογές.
Έχουμε καλύψει τα ακόλουθα θέματα που αναφέρονται παρακάτω:
- Πακέτα και η δομή τους.
- Διαφορετικά χαρακτηριστικά πακέτων.
- Έξοδος DBMS.
- Υποπρογράμματα του πακέτου DBMS_OUTPUT.
<< PREV Tutorial | ΕΠΟΜΕΝΟ Φροντιστήριο >>
Συνιστώμενη ανάγνωση
- Εκμάθηση PL SQL για αρχάριους με παραδείγματα | Τι είναι το PL / SQL
- Εκμάθηση εγγραφών PL SQL με παραδείγματα
- Δρομέας και συμβολοσειρές PL SQL: Εκμάθηση με παραδείγματα κώδικα
- Εκμάθηση Python DateTime με παραδείγματα
- Ανάπτυξη εφαρμογών βάσης δεδομένων Oracle: Oracle SQL & PL / SQL
- Κορυφαίες ερωτήσεις συνέντευξης Oracle: Ερωτήσεις Oracle Basic, SQL, PL / SQL
- Διαφορά μεταξύ SQL Vs MySQL Vs SQL Server (με παραδείγματα)
- Κορυφαίες ερωτήσεις συνέντευξης για φόρμες και αναφορές της Oracle