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 Oracle Discussion :

Déclaration au sein d'une requête


Sujet :

SQL Oracle

  1. #1
    Membre averti Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 455
    Points : 323
    Points
    323
    Par défaut Déclaration au sein d'une requête
    Bonjour à tous,

    Est-il possible de déclarer des variables au sein d'une requête.


    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Declare
    a Number :=10000
     
    BEGIN
    select * from M_Table where Mon_CA > a
    END

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    oui.

    Note : ta syntaxe est incorrect, il faut des ; et un into

  3. #3
    Membre averti Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 455
    Points : 323
    Points
    323
    Par défaut
    Pourrais -tu être plus explicite .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Declare
    a Number :=10000;
     
    BEGIN
    SELECT * FROM M_Table WHERE Mon_CA > a
    END;
    si je fais comme ça ne marche pas ???

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par casavba Voir le message
    Pourrais -tu être plus explicite .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Declare
    a Number :=10000;
     
    BEGIN
    SELECT * FROM M_Table WHERE Mon_CA > a ;
    END;
    si je fais comme ça ne marche pas ???
    Ben essaie !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ORA-06550: line 2, column 1:
    PLS-00428: an INTO clause is expected in this SELECT statement
    Puis va voir : http://sheikyerbouti.developpez.com/...=Chap1#L1.2.20

    Il y a un cours sur le pl/sql icitte : http://sheikyerbouti.developpez.com/pl_sql/

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Sous SQL*Plus tu peut utiliser le & pour désigner une variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM M_Table WHERE Mon_CA > &a
    ou alors déclarer une variable (toujours sous SQL*Plus) et la préfixer de : pour l'utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SQL> var a number;
    SQL> begin
      2  :a := 1000;
      3  end;
      4  /
     
    PL/SQL procedure successfully completed.
     
    SQL> select :a from dual;
     
            :A
    ----------
          1000

  6. #6
    Membre averti Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 455
    Points : 323
    Points
    323
    Par défaut
    Bonjour et merci pour vos réponses,

    En fait, j'ai pas accès à sql plus,
    en fait je fais mes requêtes à l'aide d'une interface qui ressemble à mS query,

    en fait au niveau de ma requete je voudrais déclarer la variable au début de la requête et l'initialiser en lui attribuant une valeur, ---> comme ça je serais pas obligé de modifié autant de fois que la valeur existe dans ma requête.

    ex:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select Filiale from Table_1 where CA > 1000
    union
    select Filiale from Table_3 where CA > 1000
    union
    select Filiale from Table_4 where CA > 1000
    ce que je voudrais faire c celà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Declare
    a Number :=1000;
    Begin
    select Filiale from Table_1 where CA > a
    union
    select Filiale from Table_3 where CA > a
    union
    select Filiale from Table_4 where CA > a;
    End;
    J'ai beau essayé mais ça ne marche pas

    Peut être que ma démarche est fausse

    Help me

    Je suis coincé

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par casavba Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Declare
    a Number :=1000;
    Begin
    select Filiale from Table_1 where CA > a
    union
    select Filiale from Table_3 where CA > a
    union
    select Filiale from Table_4 where CA > a;
    End;
    J'ai beau essayé mais ça ne marche pas
    Peut être que ma démarche est fausse
    Help me
    Je suis coincé
    Déjà, ça serait bien de nous donner une erreur au lieu du "ça marche pas".
    Et puis tu peux toujours relire mon précédent message pour comprendre ton erreur de PL/SQL...
    Mais ne te sens pas obliger.

  8. #8
    Membre averti Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 455
    Points : 323
    Points
    323
    Par défaut
    En fait, l'erreur qui m'affiche est:

    Erreur dans la requête 'Select ..'
    merci de ta compréhension Jérôme

  9. #9
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    manque INTO

  10. #10
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par orafrance Voir le message
    manque INTO
    Ca va être sympa de l'ajouter dans la requête de type Select ... UNION SELECT...

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Ca va être sympa de l'ajouter dans la requête de type Select ... UNION SELECT...
    Ouais c'est vrai... Donc une solution : curseur

  12. #12
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT Filiale 
    INTO mavariable
    FROM (
    SELECT Filiale FROM Table_1 WHERE CA > a
    union
    SELECT Filiale FROM Table_3 WHERE CA > a
    union
    SELECT Filiale FROM Table_4 WHERE CA > a);
    A part ça quand je vois 3 tables avec les mêmes colonne et même condition WHERE je crains le pire

Discussions similaires

  1. MAX(x + y) au sein d'une requête
    Par ciols dans le forum Langage SQL
    Réponses: 7
    Dernier message: 19/02/2014, 13h24
  2. Réponses: 1
    Dernier message: 23/09/2011, 15h30
  3. Colonne compteur dynamique au sein d'une requête
    Par lacombefr dans le forum Développement
    Réponses: 6
    Dernier message: 16/04/2008, 13h41
  4. Réponses: 3
    Dernier message: 05/09/2006, 15h59
  5. Réponses: 6
    Dernier message: 20/06/2006, 14h49

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