λογισμικό

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

Πώς να κάνει ένα Oracle PL /SQL πακέτο

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

Δημιουργήστε δύο αρχεία κειμένου με κατάληξη το αρχείο SQL . Αυτό αρχεία κειμένου θα περιέχει τον πηγαίο κώδικα για την κεφαλίδα πακέτου Oracle και το σώμα Oracle πακέτο αντίστοιχα . Θα λειτουργήσει ως η πηγή εντολές για να δημιουργήσετε το πακέτο στη βάση δεδομένων , όπως μια αποθηκευμένη διαδικασία . 2

Εισάγετε την επικεφαλίδα πακέτου εντολές για τη δημιουργία του πακέτου . Επεξεργαστείτε το αρχείο κεφαλίδας και τοποθετήστε τις εντολές εκεί για να δημιουργήσει τα πρωτότυπα λειτουργία . Το αρχείο κεφαλίδα καθορίζει με τον διερμηνέα Oracle τι να περιμένουμε κατά την κατάρτιση του σώματος πακέτο ως προς τις παραμέτρους και τις τιμές επιστροφής . Ένα παράδειγμα της επικεφαλίδας πακέτου παρουσιάζεται παρακάτω :

Σύσταση ή την αντικατάσταση ΦΥΛΛΟ update_planned_hrs

IS

Planned_hours ΑΡΙΘΜΟΣ ( 4 ) ?

ΔΙΑΔΙΚΑΣΙΑ set_new_planned ( p_emp_id ΣΕ ΑΡΙΘΜΟ , p_project_id ΣΕ ΑΡΙΘΜΟ , p_hours ΣΕ ΑΡΙΘΜΟ ) ?

ΛΕΙΤΟΥΡΓΙΑ existing_planned ( p_emp_id ΣΕ ΑΡΙΘΜΟ , p_project_id ΣΕ ΑΡΙΘΜΟ ) ΑΡΙΘΜΟΣ ΕΠΙΣΤΡΟΦΗ ?

update_planned_hrs ΤΕΛΟΣ ?

/

Αυτό είναι ένα τυπικό κεφαλίδα πακέτου . Μπορεί να τοποθετηθεί στο δικό του αρχείο προέλευσης ή στο ίδιο αρχείο προέλευσης όπως το σώμα του πακέτου. Είναι καλή πρακτική να κρατήσει το δύο στα δικά τους αρχεία προέλευσης , ωστόσο . . Πάντα εκτελέσει τις εντολές δημιουργία του πακέτου ( η επικεφαλίδα ) πρώτη
εικόνων 3

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

Σύσταση ή την αντικατάσταση ΦΥΛΛΟ ΣΩΜΑΤΟΣ update_planned_hrs

IS

ΔΙΑΔΙΚΑΣΙΑ set_new_planned ( p_emp_id ΣΕ ΑΡΙΘΜΟ , p_project_id ΣΕ ΑΡΙΘΜΟ , p_hours ΣΕ ΑΡΙΘΜΟ )

IS

BEGIN

UPDATE employee_on_activity εα

SET ea.ea_planned_hours = p_hours

ΟΠΟΥ

ea.ea_emp_id = p_emp_id

ΚΑΙ ea.ea_proj_id = p_project_id ?

ΕΞΑΙΡΕΣΗ

ΟΤΑΝ NO_DATA_FOUND ΤΟΤΕ

RAISE_APPLICATION_ERROR ( -20,100 , « Δεν υπάρχει τέτοιο υπάλληλος ή έργου ) ?

ΤΕΛΟΣ set_new_planned ?

ΛΕΙΤΟΥΡΓΙΑ existing_planned ( p_emp_id ΣΕ ΑΡΙΘΜΟ , p_project_id ΣΕ ΑΡΙΘΜΟ ) ΑΡΙΘΜΟΣ ΕΠΙΣΤΡΟΦΗ

IS

existing_hours ΑΡΙΘΜΟΣ ( 4 ) ?

BEGIN

SELECT εα . ea_planned_hours ΣΕ existing_hours

ΑΠΟ employee_on_activity εα

ΟΠΟΥ

ea.ea_emp_id = p_emp_id

ΚΑΙ ea.ea_proj_id = p_project_id ?

RETURN ( existing_hours ) ?

ΕΞΑΙΡΕΣΗ

ΟΤΑΝ NO_DATA_FOUND ΤΟΤΕ

RAISE_APPLICATION_ERROR ( -20,100 , « Δεν υπάρχει τέτοιο υπάλληλος ή σχέδιο ») ?

ΤΕΛΟΣ existing_planned ?

update_planned_hrs ΤΕΛΟΣ ?

/
Η 4

Δοκιμάστε το πακέτο λειτουργεί με τη χρήση κατάλληλα δεδομένα δοκιμής . Αυτό θα περιλαμβάνει την κλήση του πακέτου από την γραμμή εντολών στο Oracle SQLPlus ως εξής :

ΔΗΛΩΝΩ

l_emp_id ΑΡΙΘΜΟΣ ?

L_project_id ΑΡΙΘΜΟΣ ?

BEGIN

l_emp_id : = 1 ?

l_project_id : = 12 ?

- Αποκτήστε τις υπάρχουσες προγραμματισμένες ώρες για αυτόν τον υπάλληλο χρησιμοποιώντας το επίμονο μεταβλητή δέσμη

update_planned . . planned_hours = update_planned.existing_planned ( l_emp_id , l_project_id ) ?

- τώρα ενημερώσετε τις ώρες των εργαζομένων προγραμματιστεί

update_planned.planned_hours : = update_planned.planned_hours + 10 ?

update_planned . set_new_planned ( l_emp_id , l_project_id , update_planned.planned_hours ) ?

- Έξοδος τα αποτελέσματα

dbms_output.put_line ( « Υπάλληλος »

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

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