Bonjour,

Voici ma requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DECLARE CURSOR c IS select * from haplo where notest IN('KCAS', 'MBCAS', 'SHGC', 'MTP', 'MSHGC') and nunati='2521224874';
BEGIN
  DECLARE resultest varchar2(1000) := '';
  BEGIN
    FOR r in c 
    LOOP 
      CASE WHEN (r.NOTEST = 'MSHGC' OR r.NOTEST = 'shgc' AND r.TYPTEST= 'H' AND r.RESULTEST = '0') THEN
        RESULTEST := 'NP';
      WHEN (r.NOTEST = 'MSHGC' OR r.NOTEST = 'shgc' AND r.TYPTEST= 'H' AND r.RESULTEST = '1') THEN
        RESULTEST := 'SH';
      WHEN (r.NOTEST = 'MSHGC' OR r.NOTEST = 'shgc' AND r.TYPTEST= 'H' AND r.RESULTEST = 'IN') THEN
        RESULTEST := 'IN';
      END CASE;
      SELECT CONCAT(resultest, r.notest || ':' || r.resultest || ';') INTO resultest FROM dual;
    END LOOP;
  dbms_output.put_line(resultest);
  END;
END;
Mon message d'erreur est :
Rapport d'erreur -
ORA-06592: CASE introuvable lors de l'exécution de l'instruction CASE
ORA-06512: à ligne 7
06592. 00000 - "CASE not found while executing CASE statement"
*Cause: A CASE statement must either list all possible cases or have an
else clause.
*Action: Add all missing cases or an else clause.
Je ne trouve pas le problème dans mon case, peut être une erreur de syntaxe ?
J'utilise une base de données Oracle.

Merci d'avance.