Extrait du cours développement d’applications avec les bases de données
Sous-programmes
Blocs PL/SQL nommés et paramétrés
Procédures : réalisent des traitements ; peuvent retourner ou non un ou plusieurs résultats
Fonctions : retournent un résultat unique ; peuvent être appelées dans des requêtes SQL
Sont stockés avec la base
Intérêt de l’utilisation de sous-programmes :
Productivité de la programmation : modularité (avantage pour la conception et la maintenance), réutilisation
Intégrité : regroupement des traitements dépendants
Sécurité : gestion des droits sur les programmes qui traitent les données
La récursivité est permise (à utiliser avec précaution) !
Procédures
Syntaxe :
PROCEDURE nomProcedure
[(par1 [IN | OUT | IN OUT] [NOCOPY] type1
[{:= | DEFAULT} expression]
[, par2 [IN | OUT | IN OUT] [NOCOPY] type2
[{:= | DEFAULT} expression … )]
{IS | AS} [declarations;]
BEGIN
instructions;
[EXCEPTION
traitementExceptions;]
END[nomProcedure];
Se termine à la fin du bloc ou par une instruction RETURN
Fonctions
Syntaxe :
FUNCTION nomFonction
[(par1 [IN | OUT | IN OUT] [NOCOPY] type1
[{:= | DEFAULT} expression]
[, par2 [IN | OUT | IN OUT] [NOCOPY] type2
[{:= | DEFAULT} expression … )]
RETURN typeRetour
{IS | AS} [declarations;]
BEGIN
instructions;
[EXCEPTION
traitementExceptions;]
END[nomFonction];
Se termine obligatoirement par RETURN qui doit
renvoyer une valeur de type typeRetour
Paramètres de sous-programme
Types de paramètres :
Entrée (IN) : on ne peut pas lui affecter une valeur dans le sous programme; le paramètre effectif associé peut être une constante, une variable ou une expression ; toujours passé par référence !
Sortie (OUT) : on ne peut pas l’affecter (à une variable ou à lui-même) dans le sous-programme ; le paramètre effectif associé doit être une variable ; par défaut (sans NOCOPY) passé par valeur !
Entrée et sortie (IN OUT) : le paramètre effectif associé doit être une variable ; par défaut (sans NOCOPY) passé par valeur !
NOCOPY : passage par référence de paramètre OUT | IN OUT, utile
pour paramètres volumineux ; attention aux effets de bord !
Paramètres OUT | IN OUT pour FUNCTION : mauvaise pratique qui
produit des effets de bord. Lorsqu’une fonction doit être appelée depuis SQL, seuls des paramètres IN sont autorisés !
…….
Sommaire: Développement d’applications avec les bases de données
PL/SQL
Variables, structures de contrôle
Curseurs, interaction avec la base
Sous-programmes, paquetages
Exceptions
Transactions
Déclencheurs (triggers)
JDBC
Généralités
Connexion à une base
Interaction avec la base, curseurs
Procédures stockées, procédures externes
Relationnel ↔ objet
Développement d’applications avec les bases de données (280 KO) (Cours PDF)