Les packages PL/SQL
Les packages PL/SQL apportent pas mal d’avantages par rapport aux procédures et fonctions stockées. Nous allons voir dans ce tutoriel comment exploité au mieux ces packages.
Les avantages des packages PL/SQL
Les avantages des packages PL/SQL sont :
Gain de performance :
-
Le moteur PL/SQL charge le package entier en mémoire dès que l’on fait appel à une de ses procédures. L’exécution des autres procédures se fera directement, sans lecture préalable du moteur PL/SQL.
Gestion de sécurité :
-
En effet en enregistrant les procédures à travers un package, on peut définir des droits d’accès publique ou privée.
Un structuration plus cohérente :
-
Les objets peuvent être reliés entre eux par le biais d’utilisation de variable Globale. Le relecture et la compréhension des fonctionnalités des procédures du package se fait plus facilement.
Composition des packages PL/SQL
Les packages PL/SQL se divisent en 2 parties :
la spécification : Partie déclarative du package qui liste les entêtes de procédures et fonctions (contenues dans le package PL/SQL).
le corps du package : possède le code PL/SQL des procédures et fonctions définies dans la spécification.
Syntaxe
CREATE [OR REPLACE] PACKAGE BODY nompackage
{ IS | AS }
Déclarations de variables locales
Corps des sous-programmes publics et privés
BEGIN
…
END [nompackage] ;
Exemple en code
-- 1) Installation d'un package CREATE or replace PACKAGE pacRH AS -- ===================== /* Fonction de conversion en FF (arrondir aux centimes) d'un montant transmis en EURO. */ FUNCTION ConvFF (pMontant NUMBER) RETURN NUMBER ; END pacRH ; -- 2) Implémentation du corps de package CREATE or replace PACKAGE BODY pacRH AS -- ===================== FUNCTION ConvFF (pMontant NUMBER) RETURN NUMBER IS vTaux CONSTANT NUMBER := 6.55957 ; BEGIN RETURN ( ROUND( pMontant * vTaux, 2) ) ; EXCEPTION WHEN others THEN RETURN (null) ; END ConvFF ; END pacRH ; -- ======================================= -- Test select * from salarie where pacRH.ConvFF(sal) > 12000 ; -- =======================================



(5 votes, moyenne: 3,60 max : 5)
Note de l'article