Variable de substitution SQL PLUS

Fermé
badcommand Messages postés 84 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 10 décembre 2010 - Modifié par badcommand le 10/12/2010 à 17:53
Bonjour,

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

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.