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 :

Requête SQL avec "decode"


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 100
    Points : 66
    Points
    66
    Par défaut Requête SQL avec "decode"
    Bonjour,

    Je dois alimenter en base un champ représentant une date au format YYYYMMJJ. J'extrais cette date d'un nom de fichier, en la transformant un peu, car elle est alors sous la forme YY"lettre"JJ, la "lettre" correspondant au numéro du mois.

    Voilà mon expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE matable
    SET date = '20'||SUBSTR(SUBSTR(nom_de_fichier, -10, 5), 1, 2)||DECODE(SUBSTR(SUBSTR(nom_de_fichier, -10, 5), 3, 1), A, 01, B, 02, C, 03, D, 04, E, 05, F, 06, G, 07, H, 08, I, 09, J, 10, K, 11, L, 12)||SUBSTR(SUBSTR(nom_de_fichier, -10, 5), 4, 2);
    Avec :
    - '20'||SUBSTR(SUBSTR(nom_de_fichier, -10, 5), 1, 2) : concaténation de "20 " et des 2 premiers des 5 derniers caractères du nom de fichier
    (représentant le "YY") ;
    - DECODE(SUBSTR(SUBSTR(nom_de_fichier, -10, 5), 3, 1), A, 01, B, 02, C, 03
    , D, 04, E, 05, F, 06, G, 07, H, 08, I, 09, J, 10, K, 11, L, 12) :
    transformation en numéro de mois du 3ème caractère des 5 derniers
    caractères du nom de fichier (représentant la "lettre") ;
    - SUBSTR(SUBSTR(nom_de_fichier, -10, 5), 4, 2) : 2 derniers caractères des
    5 derniers caractères du nom de fichier (représentant le "JJ") ;

    Tout ça pour dire que lorsque je lance la requête, j'ai ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERREUR à la ligne 4 :
    ORA-00904: "L" : identificateur non valide
    Et là j'avoue, je sèche.
    Any idea?

    Merci d'avance.

  2. #2
    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
    les chaines de caractères doivent être encadrées par de '

    le forum c'est pas fait pour débugger en principe

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 100
    Points : 66
    Points
    66
    Par défaut
    Merci pour ta réponse!

  4. #4
    Membre habitué Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par orafrance Voir le message
    les chaines de caractères doivent être encadrées par de '

    le forum c'est pas fait pour débugger en principe
    Exactement car à premiere vue, c'est un substr avec des chaines sans les quotes '...
    La vie n'est qu'une suite de tests...(pas unitaires )

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

Discussions similaires

  1. [Toutes versions] Requête SQL avec Simples et Doubles Quotes
    Par Roums dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/03/2010, 10h00
  2. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33
  3. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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