Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment créer une procédure dans un package dans Oracle

Dans Oracle, vous devez d'abord déclarer la procédure dans une spécification de package, puis créer la procédure complète dans le corps du package. Parce que si vous essayez de créer une procédure uniquement dans le corps du package sans sa déclaration dans la spécification du package, vous obtiendrez le composant d'erreur PLS-00302 doit être déclaré et le bloc PL/SQL invalide ORA-06550. Donc, ci-dessous, je donne un exemple sur la façon de créer une procédure dans un package dans Oracle.

Dans cet exemple, nous allons créer une procédure update_comm pour mettre à jour la commission dans la table EMP. Cette procédure prendra le paramètre pour le pourcentage de commission.

Créer une procédure dans un package dans Oracle Example

Déclarer la procédure dans la spécification du package

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

Créer la procédure complète dans le corps du package

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;

Vous pouvez maintenant exécuter cette procédure comme suit :

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