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 :

Decode, sign : Missing right parenthesis


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Par défaut Decode, sign : Missing right parenthesis
    Bonjour,

    J'obtiens une erreur sur cette requête en SQL sous Oracle 10g.
    Il me met qu'il manque une parentheses de droite en erreur mais bon des fois les erreurs oracle ...
    Mes variables sont bien renseignées j'ai vérifié.
    Si vous avez une idée, Merci.

    Voici la fameuse requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Req:="UPDATE CONTROLE_GAMME_EC "+
                "SET VALE_FREQ_REEL=VALE_FREQ_REEL+"+
           "(("+FormaterTempsBD(DateActuelle)+
            "-DECODE(SIGN("+FormaterTempsBD (EvtProduction.EVPDateDebuProd)   +"-DEBU_FREQ)>0,"+
    FormaterTempsBD(EvtProduction.EVPDateDebuProd)+",DEBU_FREQ))*86400)"+
              " WHERE CODE_MACH="+StrqBD(EvtProduction.EVPCodeMach)+
                  " AND CODE_TYPE_FREQ IN ("+ChaineMAJControle+")"+
                  " AND CODE_ARTI IN (SELECT DISTINCT CODE_ARTI FROM EVT_PRODUCTION_EC WHERE CODE_MACH="+StrqBD(EvtProduction.EVPCodeMach)+
                      " AND CODE_TACH="+StrqBD(CodeTachProd)+")";
          Rep:=ExecuteRequeteSQL(Req);
          Fermeture:=FermeReponseSQL(Rep);
    Merci de vos futures réponses.

  2. #2
    Expert confirmé 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
    Par défaut
    Affichez le contenu de la variable Req avant de l'exécuter. Ensuite il devrait être simple à trouver l'erreur.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Par défaut
    Rebonjour,

    "UPDATE CONTROLE_GAMME_EC SET VALE_FREQ_REEL=VALE_FREQ_REEL+((TO_DATE('12/11/2008 09:44:07', 'DD/MM/Y"
    "YYY HH24:MI:SS')-DECODE(SIGN(TO_DATE('12/11/2008 08:49:48', 'DD/MM/YYYY HH24:MI:SS')-DEBU_FREQ)>0,TO"
    "_DATE('12/11/2008 08:49:48', 'DD/MM/YYYY HH24:MI:SS'),DEBU_FREQ))*86400) WHERE CODE_MACH='STD_MSP_05"
    "' AND CODE_TYPE_FREQ IN ('TPSOUV') AND CODE_ARTI IN (SELECT DISTINCT CODE_ARTI FROM EVT_PRODUCTION_E"
    "C WHERE CODE_MACH='STD_MSP_05' AND CODE_TACH='PROD')"
    Voici ce que je récupère et je ne vois vraiment rien d'anormal.
    Si quelqu'un à des yeux d'orfèvres ^^.

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Regarde comme l'erreur te l'indique où tu as un "decode(sign" et vérifie que le nombre de parenthèses fermantes est équivalent au nombre de parenthèses ouvrantes.

  5. #5
    Expert confirmé 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
    Par défaut
    D'abord voilà la requête formatée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    UPDATE CONTROLE_GAMME_EC 
       SET VALE_FREQ_REEL=VALE_FREQ_REEL + 
          ((TO_DATE('12/11/2008 09:44:07', 'DD/MM/YYYY HH24:MI:SS') - 
            DECODE(SIGN(TO_DATE('12/11/2008 08:49:48', 'DD/MM/YYYY HH24:MI:SS') - DEBU_FREQ) > 0 ,
                        TO_DATE('12/11/2008 08:49:48', 'DD/MM/YYYY HH24:MI:SS') ,
                        DEBU_FREQ))*86400) 
    WHERE CODE_MACH='STD_MSP_05' 
      AND CODE_TYPE_FREQ IN ('TPSOUV') 
      AND CODE_ARTI IN (SELECT DISTINCT CODE_ARTI 
                          FROM EVT_PRODUCTION_EC 
                         WHERE CODE_MACH='STD_MSP_05' 
                           AND CODE_TACH='PROD')
    et maintenat c'est facile à trouver ce qui ne va pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            DECODE(SIGN(TO_DATE('12/11/2008 08:49:48', 'DD/MM/YYYY HH24:MI:SS') - DEBU_FREQ)  > 0,

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Par défaut
    Merci pour le formatage de la requete.

    Mais je ne trouve toujours pas pourquoi, il me met toujours qu'il manque une parenthese de droite.

    Si la condition "> 0" n'est pas respectée, normalement il devrait prendre l'argument suivant ? (un peu comme sous une base SQL avec le case when else ?).

    Merci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/09/2014, 11h00
  2. Réponses: 1
    Dernier message: 28/11/2013, 14h46
  3. ORA-00907 Missing right parenthesis
    Par lola06 dans le forum SQL
    Réponses: 16
    Dernier message: 02/12/2011, 16h45
  4. COALESCE requête missing right parenthesis
    Par molesqualeux dans le forum SQL
    Réponses: 8
    Dernier message: 18/02/2011, 11h36
  5. "Missing right parenthesis" à cause d'une fonction dans l'ORDER BY
    Par logari dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 12/05/2010, 14h18

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