sql >> Base de Datos >  >> RDS >> Oracle

Cómo crear un procedimiento dentro de un paquete en Oracle

En Oracle, primero debe declarar el procedimiento en una especificación de paquete y luego crear el procedimiento completo en el cuerpo del paquete. Porque si intenta crear un procedimiento solo en el cuerpo del paquete sin su declaración en la especificación del paquete, obtendrá el error PLS-00302, se debe declarar el componente y ORA-06550 bloque PL/SQL no válido. A continuación, doy un ejemplo de cómo crear un procedimiento dentro de un paquete en Oracle.

En este ejemplo, crearemos un procedimiento update_comm para actualizar la comisión en la tabla EMP. Este procedimiento tomará el parámetro de porcentaje de comisión.

Crear un procedimiento dentro de un paquete en el ejemplo de Oracle

Declarar el procedimiento en la especificación del paquete

CREATE OR REPLACE PACKAGE emp_pkg
IS
PROCEDURE update_comm (i_comm IN emp.comm%TYPE);
END emp_pkg;

Crear el procedimiento completo en el cuerpo del paquete

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;

Ahora puede ejecutar este procedimiento de la siguiente manera:

BEGIN
/* Updating commission with 5% of salary */
emp_pkg.update_comm (5);
END;