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

Oracle Discussion :

ORA-01861: literal does not match format string et NLS_DATE


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Par défaut ORA-01861: literal does not match format string et NLS_DATE
    Bonjour

    J'ai une requête qui fonctionne sur une base de test et qui viande sur une base de recette, voici le code qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_date('01' || to_char(add_months(sysdate,1),'MMYYYY'))
    Cela provoque une erreur ORA-01861: literal does not match format string
    dûe à des paramétrages NLS différents apparement...

    Savez-vous ce que je dois modifier dans la requête sachant que je ne peux pas la lancer dans l'environnement qui plante ?

    J'ai regardé dans des docs et fait des recherches sur le forum mais je n'ai pas trouvé ( ou compris ) la méthode à suivre

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Que donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT to_char(add_months(sysdate,1)) FROM dual;
    ?

  3. #3
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Bonjour,

    Regardes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SQL> select '01' || to_char(add_months(sysdate,1),'MMYYYY'), to_date('01' || to_char(add_months(sysdate,1),'MMYYYY'), 'DDMMYYYY')
      2  from   dual;
     
    '01'||TO TO_DATE(                                                               
    -------- --------                                                               
    01102004 01/10/04
    C'est parce que '01' || to_char(add_months(sysdate,1),'MMYYYY') te renvoie un truc au format DDMMYYYY
    Il faut indiquer au to_date le format correct.


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Voila qui devrait aller mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_date('01' || SUBSTR(to_char(add_months(sysdate,1),'DDMMYYYY'),3))

  5. #5
    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
    Et pourquoi ne pas faire une requête propre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select trunc (add_months (sysdate, 1), 'MM') from dual;

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Par défaut
    Mille mercis

    Je vais essayer la solution de lalystar qui correspond plus à ma façon de programmer et je vais envoyer la modif sans la tester

    orafrance es-tu sûr que ta syntaxe va passer ? un passage de format à to_date comme l'a fait lalystar n'est pas nécessaire ?

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Pas de probléme (même s'il est vrai qu'elle n'a pas la classe de celle de PlaineR ), puisque j'ajoute une journée que je mets au format DDMMYYYY pour ne retenir que la chaine à partir du 3° de caractère et enfin, j'ajoute 01 avant

  8. #8
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par echoes
    ...je vais envoyer la modif sans la tester

    orafrance es-tu sûr que ta syntaxe va passer ?
    Alors ça, ça me dépasse !!!
    Faire le copier coller pour tester, il y en a pour 3 secondes, pourquoi vous en dispenser ???

    Un mec qui réagirait comme ça devant moi, je lui botte le cul aussi sec

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Par défaut
    Oh là !

    Je dis sans tester parce que sur ma plateforme il n'y a pas de différence donc je ne peux pas affirmer avoir résolu le problème.

    Dans tous les cas je vérifie que chez moi ça fonctionne toujours !

  10. #10
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Ouf, me voilà rassuré

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par Pomalaix
    Alors ça, ça me dépasse !!!
    Faire le copier coller pour tester, il y en a pour 3 secondes, pourquoi vous en dispenser ???

    Un mec qui réagirait comme ça devant moi, je lui botte le cul aussi sec
    Oui mais moi j'suis moine bouddhiste

    Et puis echoes commence à être connu, je pense qu'il cherchait plus une explication de texte

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Par défaut
    Merci pour votre aide, ça a finalement marché la modif.

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

Discussions similaires

  1. ORA-01861: literal does not match format string
    Par unix27 dans le forum PL/SQL
    Réponses: 5
    Dernier message: 07/01/2013, 19h02
  2. ORA-01861: literal does not match format string
    Par Bat91 dans le forum PL/SQL
    Réponses: 9
    Dernier message: 31/08/2010, 11h30
  3. ORA-01861: literal does not match format string
    Par labolabs dans le forum PL/SQL
    Réponses: 3
    Dernier message: 08/02/2010, 10h31
  4. Problème avec strptime: "does not match format"
    Par Eusebius dans le forum Général Python
    Réponses: 17
    Dernier message: 08/07/2009, 21h30
  5. [Oracle] ORA-01861: literal does not match format string
    Par habasque dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/07/2008, 21h57

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