In Oracle, devi prima dichiarare la procedura in una specifica del pacchetto e quindi creare la procedura completa nel corpo del pacchetto. Perché se proverai a creare una procedura solo nel corpo del pacchetto senza la sua dichiarazione nelle specifiche del pacchetto, otterrai l'errore Il componente PLS-00302 deve essere dichiarato e il blocco PL/SQL ORA-06550 non valido. Quindi di seguito sto fornendo un esempio su come creare una procedura all'interno di un pacchetto in Oracle.
In questo esempio creeremo una procedura update_comm per aggiornare la commissione nella tabella EMP. Questa procedura prenderà il parametro per la percentuale di commissione.
Crea una procedura all'interno di un pacchetto nell'esempio Oracle
Dichiara la procedura nelle specifiche del pacchetto
CREATE OR REPLACE PACKAGE emp_pkg IS PROCEDURE update_comm (i_comm IN emp.comm%TYPE); END emp_pkg;
Crea la procedura completa nel corpo del pacchetto
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;
Ora puoi eseguire questa procedura come segue:
BEGIN /* Updating commission with 5% of salary */ emp_pkg.update_comm (5); END;