IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sql*Plus Oracle Discussion :

Variable de substitution SQL*Plus


Sujet :

Sql*Plus Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Par défaut Variable de substitution SQL*Plus
    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.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    > @test.sql
    Saisir un nombre : 3
    OK
     
    PL/SQL procedure successfully completed.
    avec test.sql :
    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
    ACCEPT nb PROMPT 'Saisir un nombre : ' 
    SET VERIFY OFF
    DECLARE 
     nbescales number(1) := to_number(&nb); 
     mauvaisesaisie exception; 
    BEGIN 
     IF (nbescales < 8) AND  (nbescales > 1) THEN 
        DBMS_OUTPUT.PUT_LINE('OK');
     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;
    /
    [EDIT]Au fait dans ton code de démo tu utilises nb < 8 au lieu de nbescales < 8 la variable déclarée dans le script (et j'ai rajouté un to_number)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Par défaut
    Citation Envoyé par skuatamad Voir le message

    [EDIT]Au fait dans ton code de démo tu utilises nb < 8 au lieu de nbescales < 8 la variable déclarée dans le script (et j'ai rajouté un to_number)
    Merci beaucoup, c'était donc bien un problème de typage... pour le nbescales, c'est un oubli quand j'ai allégé le code pour le poster.
    Je teste ça et le sujet comme résolu dès que c'est fait.
    Encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Variables SQL Plus
    Par macben dans le forum PL/SQL
    Réponses: 2
    Dernier message: 04/07/2011, 14h26
  2. [FAQ][Sql*Plus] Utilisation de variable
    Par kirmok55 dans le forum Sql*Plus
    Réponses: 1
    Dernier message: 06/12/2006, 15h09
  3. [SQL*PLUS] Récupérer variable
    Par tonysky dans le forum Oracle
    Réponses: 4
    Dernier message: 15/02/2006, 07h56
  4. Réponses: 3
    Dernier message: 22/07/2005, 12h12
  5. listage de triggers/sequences avec sql plus
    Par stross dans le forum Oracle
    Réponses: 52
    Dernier message: 20/04/2004, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo