Δημιουργήστε δύο αρχεία κειμένου με κατάληξη το αρχείο 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 ( « Υπάλληλος »
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα