Bonjour, je suis en train de tester les procédure et je viens de realiser celle ci :

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
create or replace procedure RAS 
is
  cursor cnb is select nb_emprunt from exemplaires;
begin
  for vnb in cnb
  loop
    case 
      when vnb.nb_emprunt<=10                        then update exemplaires set etat='NE';
      when vnb.nb_emprunt>10 and vnb.nb_emprunt<=25  then update exemplaires set etat='BO';
      when vnb.nb_emprunt>26 and vnb.nb_emprunt<=40  then update exemplaires set etat='MO';
      when vnb.nb_emprunt>40                         then update exemplaires set etat='MA';
      else 0;
    end case;  
  end loop;
end;
Au moment de l'execution, j'obiens ceci :

Connecting to the database oracle.
ORA-06592: CASE introuvable lors de l'exécution de l'instruction CASE
ORA-06512: à "HR.RAS", ligne 7
ORA-06512: à ligne 2
Process exited.
Disconnecting from the database oracle.
Et lorsque regarde l'erreur 06592
ORA-06592: 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.
http://ora-06592.ora-code.com/

Il faudrait soit indiquer tous les cas possibles dans le cas, soit mettre un else. Bref je ne vois pas ou ils veulent en venir.

Savez pourquoi j'ai une erreur ?
est ce que vous arrivez à executer la procédure ?