Pakiety
Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200
Pakiet jest obiektem grupującym logicznie połączone typy PL/SQL, podprogramy tworząc w ten sposób jeden moduł do obiektów którego możemy się dowoływać poprzez notację kropkową: x:=nazwa_pakietu.zmienna_zadeklarowana_w_pakiecie; Pakiet skłąda się z dwóch części. W pierwszej części (część specyfikacji) znajdują się deklaracje dostępne dla użytkownika (publiczne). W części BODY następujepełna definicja obiektów prywatnych. Część BODY nie jest wymagana.
Przykład:
Create Or Replace PACKAGE users_package AS PROCEDURE adduser(name VARCHAR2, first_name VARCHAR2); PROCEDURE deluser(userid NUMBER); END users_package; Create Or Replace PACKAGE BODY users_package AS PROCEDURE adduser(name VARCHAR2, first_name VARCHAR2) IS BEGIN INSERT INTO users VALUES (users_seq.NEXTVAL, name, first_name); END adduser; PROCEDURE deluser(userid NUMBER) IS BEGIN DELETE FROM users WHERE id=userid; END deluser; PROCEDURE proc1 IS BEGIN ... END proc1; END users_package;
W powyższym przykładzie zdefiniowaliśmy trzy prodecury w pakiecie, z tym że, tylko dwie z nich zadeklarowalismy jako publiczne (adduser i deluser) ponieważ tylko ich deklaracje znajdują się w części specyfikacji. Trzecia procedura proc1 nie może być wywoływana z zewnątrz przez uzytkowników. Może być jedynie wywoływane przez inne podprogramy z tego samego pakietu.
Ważną cechą pakietu jest ich wydajność. Kiedy następuje wywołanie podprogramu z pakietu po raz pierwszy cały pakiet jest ładowany do pamięci. Przy kolejnych odwołaniach do pakietu dane pobierane są z pamięci, a nie z dysku co redukuje częstotliwość operacji dyskowych.
powrótKomentarze
Dodaj Komentarz
Newsletter
Jeżeli chcesz być na bieżąco informowany o aktualnościach i poradach IT zapisz się do naszego newslettera.