Utiliser efficacement les instructions de contrôle en PL/SQL peut être complexe.
Sans une bonne compréhension, vos blocs PL/SQL peuvent devenir difficiles à gérer, entraînant des erreurs dans le traitement des données.
Cet article vous guide à travers les instructions IF THEN ELSE et CASE pour optimiser vos traitements conditionnels, offrant flexibilité et efficacité.
Maîtriser le langage SQL en environnement SGBDR. SQL n'aura plus de secrets pour vous !
Dans cette section, vous allez découvrir comment utiliser les instructions de contrôle en PL/SQL, ainsi que les traitements conditionnels pour gérer différents scénarios dans vos blocs PL/SQL. Ces instructions vous permettent de diriger le flux d’exécution de votre code en fonction de conditions spécifiques, offrant ainsi une grande flexibilité dans la gestion des données. En apprenant à utiliser des structures comme IF…THEN…ELSE ou CASE, vous serez capable de prendre des décisions dynamiques basées sur les valeurs des variables ou les résultats de vos requêtes SQL.
Instruction IF THEN ELSIF ELSE
L’instruction conditionnelle IF THEN ELSIF ELSE vous permet d’exécuter différentes séquences de commandes selon des conditions spécifiques. Voici la syntaxe générale :
IF THEN
[ ELSIF THEN
[ ELSIF THEN
[ ELSE
END IF;
Dans cet exemple, nous allons vérifier le stock d’un article et afficher un message en fonction de la quantité en stock :
DECLARE
var_stock articles.quantite_stock%TYPE;
var_refart articles.reference_art%TYPE := 'INFYBVF12024';
var_libart articles.designation_art%TYPE;
BEGIN
-- Récupérer la désignation et la quantité en stock de l'article
SELECT designation_art, quantite_stock INTO var_libart, var_stock
FROM articles WHERE reference_art = var_refart;
-- Vérifier les niveaux de stock et afficher un message approprié
IF var_stock <= 2 THEN
DBMS_OUTPUT.PUT_LINE('Alerte stock : ' || var_libart || ' - quantité : ' || var_stock);
ELSIF var_stock BETWEEN 10 AND 50 THEN
DBMS_OUTPUT.PUT_LINE('Surstock : ' || var_libart || ' - quantité : ' || var_stock);
ELSIF var_stock > 50 THEN
DBMS_OUTPUT.PUT_LINE('Prévoir déstockage : ' || var_libart || ' - quantité : ' || var_stock);
ELSE
DBMS_OUTPUT.PUT_LINE('Stock normal : ' || var_libart || ' - quantité : ' || var_stock);
END IF;
END;
Dans cet exemple, le système vérifie la quantité de stock et affiche un message en fonction du niveau : alerte, surstock, déstockage, ou stock normal.
Instruction CASE
PL/SQL propose deux types d’instructions CASE :
- Case simple :Utilise une expression et compare sa valeur avec différents cas.
- Case recherché :Permet d’évaluer des conditions plus complexes pour chaque cas.
La syntaxe suivante montre comment utiliser CASE pour exécuter différentes séquences de commandes selon la valeur d’une expression :
CASE
WHEN THEN
[ ELSE
]
END CASE;
Syntaxe de la CASE recherché
CASE WHEN THEN [ ELSE ] END CASE;
Exemple d’Utilisation de la CASE
Ce type d’instruction est particulièrement utile lorsque vous avez plusieurs valeurs possibles pour une seule expression et que vous souhaitez exécuter des commandes spécifiques en fonction de ces valeurs.
Voici un exemple du même code en utilisant l’instruction CASE à la place de l’instruction IF…THEN…ELSE :
DECLARE
var_stock articles.quantite_stock%type;
var_refart articles.reference_art%type := 'INFYBVF12024';
var_libart articles.designation_art%type;
BEGIN
-- Sélection des données depuis la table 'articles'
SELECT designation_art, quantite_stock INTO var_libart, var_stock
FROM articles WHERE reference_art = var_refart;
-- Utilisation de l'instruction CASE pour gérer les différentes conditions
CASE
WHEN var_stock <= 2 THEN
DBMS_OUTPUT.PUT_LINE('Alerte stock: ' || var_libart || ' - quantite: ' || var_stock);
WHEN var_stock >= 10 AND var_stock <= 50 THEN
DBMS_OUTPUT.PUT_LINE('Surstock: ' || var_libart || ' - quantite: ' || var_stock);
WHEN var_stock > 50 THEN
DBMS_OUTPUT.PUT_LINE('Prévoir déstockage: ' || var_libart || ' - quantite: ' || var_stock);
ELSE
DBMS_OUTPUT.PUT_LINE('Stock normal: ' || var_libart || ' - quantite: ' || var_stock);
END CASE;
END;
Explication :
- Le CASE remplace ici les instructions IF…THEN…ELSE et évalue chaque condition dans un ordre donné.
- Chaque condition WHEN correspond à un test de la quantité de stock (var_stock).
- Si aucune des conditions n’est remplie, le bloc ELSE est exécuté pour afficher un message par défaut.
Dans cet exemple, le système vérifie la quantité de stock et affiche un message en fonction du niveau : surstock.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Qu'est-ce qu'une instruction IF THEN ELSE en PL/SQL ?
Comment fonctionne l'instruction CASE en PL/SQL ?
Quels sont les avantages des instructions de contrôle en PL/SQL ?
Quand utiliser l'instruction CASE plutôt que IF THEN ELSE ?
Comment les instructions de contrôle améliorent-elles le code PL/SQL ?
Conclusion
Les instructions de contrôle en PL/SQL sont essentielles pour gérer efficacement les flux de données. En maîtrisant leur utilisation, vous pouvez améliorer considérablement la robustesse et la lisibilité de votre code. Quelle autre fonctionnalité PL/SQL aimeriez-vous explorer pour optimiser vos processus de gestion des données ?