Samedi 23 juillet 2011 6 23 /07 /Juil /2011 00:55

 

PLSQL CASE - WHEN - THEN - END CASE.

Comment utiliser CASE en PLSQL. ?

 

Structures de contrôle PLSQL.

Dans un traitement conditionnel la structure CASE permet de contrôler l’exécution d'instructions en fonction de différentes conditions.
La structure PLSQL CASE et IF sont équivalentes dans le traitement conditionnel mais l'instruction CASE est plus lisible et plus efficace que l'instruction IF-THEN-ELSIF.

Les opérateurs dans les conditions sont du type = , <, <=, !=, LIKE, BETWEEN, AND, OR,...

Voici les 2 principales formes conditionnelles avec l'instruction CASE.

  • Traitement Conditionnel CASE - WHEN - THEN - ELSE - END CASE.
  • Traitement Conditionnel searched CASE - WHEN - THEN - ELSE - END CASE.

La clause ELSE est facultative, si vous l'omettez, PLSQL place implicitement ELSE RAISE CASE_NOT_FOUND;

Traitement Conditionnel CASE simple.

 

Syntaxe CASE - WHEN - THEN - ELSE - END CASE.

 
CASE selecteur
   WHEN expression1 THEN instruction1;
   WHEN expression2 THEN instruction2;
   …
   WHEN expression3 THEN instruction3;
   ELSE instruction4;
END CASE;

 
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
       var_cp VARCHAR2(5) := '83000';
     BEGIN
       var_cp := SUBSTR(var_cp,1,2);
       CASE var_cp
         WHEN '78' THEN DBMS_OUTPUT.PUT_LINE ('Département Yvelines');
         WHEN '94' THEN DBMS_OUTPUT.PUT_LINE ('Département Val de Marne');
         WHEN '83' THEN DBMS_OUTPUT.PUT_LINE ('Département Var');
         ELSE           DBMS_OUTPUT.PUT_LINE ('Département Autre');
       END CASE;
     END;
     /
Département Var

Procédure PL/SQL terminée avec succès.

SQL>

 

Traitement Conditionnel searched CASE - WHEN - THEN - END CASE.

 

Syntaxe searched CASE - WHEN - THEN - END CASE.

 
CASE
   WHEN condition1 THEN instruction1;
   WHEN condition2 THEN instruction2;
   …
   WHEN condition3 THEN instruction3;
   ELSE instruction4;
END CASE;


 
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
       var_cp VARCHAR2(5) := '75000';
     BEGIN
       CASE
         WHEN SUBSTR(var_cp,1,2) = '78' THEN DBMS_OUTPUT.PUT_LINE ('Département Yvelines');
         WHEN SUBSTR(var_cp,1,2) = '94' THEN DBMS_OUTPUT.PUT_LINE ('Département Val de Marne');
         WHEN SUBSTR(var_cp,1,2) = '83' THEN DBMS_OUTPUT.PUT_LINE ('Département Var');
         ELSE                                DBMS_OUTPUT.PUT_LINE ('Département Autre');
       END CASE;
     END;
     /
Département Autre

Procédure PL/SQL terminée avec succès.

SQL>

 

Haut de Page www.dba-ora.fr

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• PL-SQL IF
• PL-SQL CASE
Par Daniel Roesch - Publié dans : ORACLE PLSQL
Ecrire un commentaire - Voir les 0 commentaires
Retour à l'accueil

Rechercher Articles Oracle SQL sur ce Site.

Loading

À lire aussi…

Download PDF Oracle

Rechercher sur le site

Oracle 10G - DBA -

Syndication

  • Flux RSS des articles
Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus - Articles les plus commentés