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 :

Erreur ORA-01722 date inferieure ou egale


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut Erreur ORA-01722 date inferieure ou egale
    Bonjour,

    Je suis actuellement sous Oracle et je voudrais effectuer l'opération suivante :
    afficher tous les résultats tel que la date passée en paramètre soit inférieure ou égale à la date d'entrée.

    Mon code sql est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trunc(RS."STORE_DATE", 'DD') <= TO_DATE(?, 'DD-MM-YYYY')
    ? étant le paramètre date au format (dd/mm/aaaa) que je passe à partir d'une fenêtre. Ca me génére une erreur :

    ORA-01722 nombre non valide.

    Par contre, si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trunc(RS."STORE_DATE", 'DD') = TO_DATE(?, 'DD-MM-YYYY')
    ==> j'ai pas d'erreur.

    Est ce que quelqu'un aurait une idée de ce qui ne va pas dans la première requête ?

    Merci.

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Si ça se trouve l'erreur vient d'ailleurs (des données pour les dates inférieures à ton param).
    Poste donc la requête complète.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Salut,

    Merci pour la réponse. En fait, ma requête est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select
      RS.PAT_LASTNAME as "nom"
      from
      RESOURCE RS
    where
    RS.IDE_ID = 1 and
        (
        (1 = 1) AND
        RS."STORE_SITE_ID" = '1' AND
        trunc(RS."STORE_DATE", 'DD') <= TO_DATE(?, 'DD-MM-YYYY') AND RS.PAT_ID = ?
     
          )
    order by
      1
    Le paramètre pour la date je l'ai déclaré en chaine de caractère que je rentre sous la forme jj/mm/aaaa et le PAT_ID est un entier.
    En fait, ces paramètres que j'écris avec le caractère ? dans le script sql, je les renseigne en utilisant BirtEditor

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Jarod51 Voir le message
    TO_DATE(?, 'DD-MM-YYYY')

    Le paramètre pour la date je l'ai déclaré en chaine de caractère que je rentre sous la forme jj/mm/aaaa
    Il y a incohérence de format
    Si tu renseignes en jj/mm/aaaa, met TO_DATE(?, 'DD/MM/YYYY')

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    salut,

    j'ai essayé cette solution TO_DATE(?, 'DD/MM/YYYY') mais j'ai toujours la même erreur. Du moment que je change le = par un <= dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trunc(RS."STORE_DATE", 'DD') <= TO_DATE(?, 'DD/MM/YYYY') AND RS.PAT_ID = ?
    j'ai l'erreur qui apparait

    Je sais plus trop quoi essayé

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Tu peux donner le desc de ta table ?

    Tu peux essayer en mettant des valeurs en dur (au lieu de ?)

Discussions similaires

  1. Erreur ORA-01722 sur un Insert
    Par Unsurgent dans le forum Oracle
    Réponses: 2
    Dernier message: 25/02/2011, 12h03
  2. Erreur ORA-01722 lors d'un SELECT
    Par sat478 dans le forum Oracle
    Réponses: 2
    Dernier message: 18/01/2011, 18h59
  3. Erreur ORA-01722 "invalid number"
    Par devbegins dans le forum Débuter
    Réponses: 3
    Dernier message: 23/01/2010, 00h14
  4. erreur ORA-01722 dans une procédure
    Par Lolitaaa dans le forum PL/SQL
    Réponses: 10
    Dernier message: 26/06/2009, 15h01
  5. Réponses: 2
    Dernier message: 27/05/2009, 13h57

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