Comment utiliser CASE en 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.
La clause ELSE est facultative, si vous l'omettez, PLSQL place implicitement ELSE RAISE CASE_NOT_FOUND;
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>
|
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> |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
|
• PL-SQL IF • PL-SQL CASE |