W Oracle najpierw musisz zadeklarować procedurę w specyfikacji pakietu, a następnie utworzyć pełną procedurę w treści pakietu. Ponieważ jeśli będziesz próbował stworzyć procedurę tylko w treści pakietu bez jej deklaracji w specyfikacji pakietu to dostaniesz błąd komponent PLS-00302 musi być zadeklarowany i ORA-06550 niepoprawny blok PL/SQL. Poniżej podaję przykład, jak utworzyć procedurę wewnątrz pakietu w Oracle.
W tym przykładzie stworzymy procedurę update_comm do aktualizacji prowizji w tabeli EMP. Ta procedura przyjmie parametr dotyczący procentu prowizji.
Utwórz procedurę wewnątrz pakietu w przykładzie Oracle
Zadeklaruj procedurę w specyfikacji pakietu
CREATE OR REPLACE PACKAGE emp_pkg IS PROCEDURE update_comm (i_comm IN emp.comm%TYPE); END emp_pkg;
Utwórz pełną procedurę w treści pakietu
CREATE OR REPLACE PACKAGE BODY emp_pkg IS PROCEDURE update_comm (i_comm IN emp.comm%TYPE) IS BEGIN UPDATE emp SET comm = sal * NVL (i_comm, 0) / 100; COMMIT; END update_comm; END emp_pkg;
Teraz możesz wykonać tę procedurę w następujący sposób:
BEGIN /* Updating commission with 5% of salary */ emp_pkg.update_comm (5); END;