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

Administration Oracle Discussion :

ERREUR à la ligne 1 :ORA-00936: expression absente


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 53
    Points : 45
    Points
    45
    Par défaut ERREUR à la ligne 1 :ORA-00936: expression absente
    salut tt le monde je travaille avec oracle 10g sous windows XP.
    quand j'exécute cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select max(t.hauteur) "hauteur_max" from ((select  h_site_depart_los "HAUTEUR" from site_los_simulation where id_site_depart_los='CAS0046') UNION (select  h_site_arrivee_los "HAUTEUR" from site_los_simulation where id_site_arrivee_los='CAS0046')) t where (select count(*) from ((select  h_site_depart_los "HAUTEUR" from site_los_simulation where id_site_depart_los='CAS0046') UNION (select  h_site_arrivee_los "HAUTEUR" from site_los_simulation where id_site_arrivee_los='CAS0046')))=select count(b.hauteur) from ((select  h_site_depart_los "HAUTEUR" from site_los_simulation where id_site_depart_los='CAS0046') UNION (select  h_site_arrivee_los "HAUTEUR" from site_los_simulation where id_site_arrivee_los='CAS0046')) b);
    en gros cette requete devrait afficher la hauteur max de site quand l'information concernant la hauteur du site sur chaque lien est disponible . donc s'il y a une valeur null il devrait retourner un null. c'est pour ca j'ai utilisé comme condition une coparaison entre un count(*) (qui n'ignore pas les valeurs null) et un count(hauteur) cependant elle m'affiche l'erreur citée dans l'intitulé.
    le détail sur la table site_los_simulation est:
    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
    20
    21
    22
    23
    24
    25
    26
    27
     
    CREATE TYPE Tsite_los_simulation AS OBJECT
    (id_connexion_los VARCHAR2(30),
    region VARCHAR2(30),
    id_site_depart_los VARCHAR2(30),
    h_site_depart_los INTEGER,
    longitude_site_depart VARCHAR2(30),
    latitude_site_depart VARCHAR2(30),
    azimut_site_depart VARCHAR2(30),
    id_site_arrivee_los VARCHAR2(30),
    h_site_arrivee_los INTEGER,
    longitude_site_arrivee VARCHAR2(30),
    latitude_site_arrivee VARCHAR2(30),
    azimut_site_arrivee VARCHAR2(30),
    date_los_fait date,
    comment_connexion VARCHAR2(100)
     
    )
    /
     
     
     
     
    CREATE TABLE site_los_simulation OF Tsite_los_simulation
    (PRIMARY KEY(id_connexion_los)
    )
    ;
    est ce que qlq'1 a une idée? et merci d'avance

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Il manque une parenthèse avant un des SELECT... Et si tu veux les détecter plus facilement, travailles la présentation de tes requêtes...

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    SELECT max(t.hauteur) "hauteur_max"
    FROM
    (
        (
            SELECT    h_site_depart_los "HAUTEUR"
                FROM site_los_simulation
            WHERE id_site_depart_los='CAS0046'
        )
        UNION
        (
            SELECT    h_site_arrivee_los "HAUTEUR"
            FROM site_los_simulation
            WHERE id_site_arrivee_los='CAS0046'
        )
    ) t
    WHERE
    (
        SELECT count(*)
        FROM
        (
            (
                SELECT    h_site_depart_los "HAUTEUR"
                FROM site_los_simulation
                WHERE id_site_depart_los='CAS0046'
            )
            UNION
            (
                SELECT    h_site_arrivee_los "HAUTEUR"
                FROM site_los_simulation
                WHERE id_site_arrivee_los='CAS0046'
            )
        )
    )
    =
    (
        SELECT count(b.hauteur)
        FROM
        (
            (
                SELECT    h_site_depart_los "HAUTEUR"
                FROM site_los_simulation
                WHERE id_site_depart_los='CAS0046'
            )
            UNION
            (
                SELECT    h_site_arrivee_los "HAUTEUR"
                FROM site_los_simulation
                WHERE id_site_arrivee_los='CAS0046'
            )
        ) b
    );
    (Cette présentation n'est pas idéale, mais je trouve ça déjà plus clair ! )

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Août 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    En fait tu peux simplifier ta requete avec la fonction NVL, dans les sous requetes de ta clause where. Ca a surtout l'avantage d'etre plus lisible...
    A+

Discussions similaires

  1. Erreur ORA-00936 Missing expression
    Par Nihilivin dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 04/01/2014, 06h27
  2. ORA-00936: expression absente
    Par key4ar dans le forum SQL
    Réponses: 2
    Dernier message: 25/10/2011, 01h04
  3. Jointure externe avec ORA-00936: expression absente
    Par farenheiit dans le forum SQL
    Réponses: 3
    Dernier message: 03/09/2009, 11h48
  4. ORA-00936: expression absente
    Par highs dans le forum SQL
    Réponses: 8
    Dernier message: 19/11/2008, 09h34
  5. Réponses: 5
    Dernier message: 07/08/2007, 12h20

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