Les packages PL/SQL

Les packages PL/SQL

sommaire :

  1. Les avantages des packages PL/SQL
  2. Composition des packages PL/SQL
  3. Syntaxe
 

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 ;

-- =======================================

Note de l'article




1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, moyenne: 4,50 max : 5)
Loading ... Loading ...

Donner votre avis :