Bonjour,

Voilà j'ai un petit souci à exécuter ce code (que j'ai allégé pour faciliter la lecture):

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
19
ACCEPT nb PROMPT'Saisir un nombre : ' 
SET VERIFY OFF 
 
DECLARE 
 nbescales number(1) := &nb; 
 mauvaisesaisie exception; 
BEGIN 
 IF (nb < 8) AND  (nb > 1) THEN 
    Mes instruction à executer; 
 ELSE 
  RAISE mauvaisesaisie; 
 END IF; 
 
EXCEPTION     
 WHEN mauvaisesaisie THEN 
      DBMS_OUTPUT.PUT_LINE('La saisie doit etre un chiffre compris entre 1 et 8'); 
 WHEN OTHERS THEN 
       DBMS_OUTPUT.PUT_LINE('Une erreur s est produite');      
END;

Le problème est que je n'arrive pas à faire entrer la saisie dans une variable et la réutiliser ensuite. A chaque fois j'ai le message une erreur s'est produite, ce qui veux dire que le problème ne vient pas de la comparaison mais certainement du typage. J'avais fait un autre mini-programme qui testait un (oui/non) sur un caractère; même problème.
J'ai essayé avec d'autres types, en enlevant le nombre de caractères entre parenthèse, en effectuant le test directement sur &nb ... rien,rien,rien
J'ai cherché des solutions mais là je commence à me taper la tête contre les murs.
Merci par avance du temps que vous consacrerez à mon problème.