Vous êtes sur la page 1sur 9

14/12/2021

PL – SQL -LMD
PACKAGES

PACKAGES

Procédures
Stockées

Fonction
Stockées

Arguments

1
14/12/2021

PACKAGES

Un Regroupement de fonction ou de procédures


Contient deux sections :
Une section de déclaration(spécifications).
Une section de traitement(Programmes).

STRUCTURE D’UN PACKAGE

2
14/12/2021

SYNTAXE ENTÊTE PACKAGE

Syntaxe
CREATE [OR REPLACE] PACKAGE <nom_package>
{IS | AS}
[Déclaration des variables et des types]
[ Déclaration des curseurs]
[Déclaration des procédures et des fonctions]
END <nom_package>

CRÉATION D'UNE ENTÊTE DE PACKAGE

Créer un package qui déclare deux variables globales


Datesysteme date:= sysdate;
Nomuser varchar2(50):=user;

Compiler le package
Utiliser ces variables dans un bloc PLSQL
NOMPACKAGE.NOMVARIABLE

3
14/12/2021

SYNTAXE D’UN CORPS DE PACKAGE

Syntaxe
CREATE [OR REPLACE] PACKAGE BODY <nom_package>
{IS | AS}
[Déclaration des variables et des types]
[ Déclaration des curseurs]
[Déclaration des procédures et des fonctions]
[BEGIN
<instructions_plsql>;
[Exceptions
<gestion_exception>
END <nom_package>;

CRÉATION D’UNE ENTÊTE DE PACKAGE AVEC UNE FONCTION

Créer une entête de package avec une fonctions;


En entrée de cette fonction :
Arg_Novoyage

En sortie de la sortie un boolean (True or False) ;


Déclarer une variable Nbr_ligne de type nombre;

4
14/12/2021

CRÉATION D’UN CORPS DE PACKAGE AVEC LA DÉCLARATION


D’UNE FONCTION

Créer un corps de package qui définit la fonction;


Vérifier si novoyage existe et renvoyer :
TRUE si oui
False si non

TESTER LA FONCTION DU PACKAGE

Utiliser le package dans un bloc PL/SQL avec en


entrée;
Une valeur ‘AC2001’ pour novoyage;
Tester le boolean en sortie de la fonction

5
14/12/2021

CRÉATION D'UNE ENTÊTE DE PACKAGE

Créer un package avec deux fonctions;


En entrée de chacune des fonctions:
Nobateau
Noclasse
En sortie de chacune un boolean ;

CRÉATION D’UN CORPS DE PACKAGE

Créer un corps de package avec deux fonctions;


Une première vérifie si un bateau existe;
Une seconde pour vérifier qu’une classe existe;

6
14/12/2021

TESTER LES DEUX FONCTIONS DU PACKAGE

Utiliser le package dans un bloc PL/SQL avec une


valeur en entrée;
Une valeur pour nobateau;
Une autre pour noclasse;

UTILISATION D’UN CURSEUR DANS UN PACKAGE

Obligation d’utiliser Return avec le curseur Associé;


Un enregistrement %ROWTYPE;
Un enregistrement défini par l’utilisateur;

7
14/12/2021

CRÉATION D’UNE ENTÊTE DE PACKGE AVEC UN CURSEUR

Déclarer une entête avec un curseur :


En entrée « ETAT » de la table port;
En sortie Port%rowtype;
Une procédure « Afficher Port »;

CRÉATION D’UN CORPS DE PACKGE AVEC UN CURSEUR

Déclarer un corps de package avec la définition de :


curseur qui lit la table PORT avec comme condition
Etat = Arg_entrée;
En sortie une ligne de la table port;
 Une procédure « Afficher Port » avec une boucle qui
lit implicitement le curseur avec comme argument:
Arg_entrée = ‘CA’;

8
14/12/2021

EXÉCUTER UN PACKAGE DE CURSEUR

Exécuter le package du curseur avec la fonction :

Execute Nom_Procedure;

MERCI DE
VOTRE
ATTENTION

Vous aimerez peut-être aussi