Oracle
 sql >> Database >  >> RDS >> Oracle

Come creare una procedura all'interno di un pacchetto in Oracle

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;