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 :

Signification d'une erreur Oracle


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 25
    Points : 18
    Points
    18
    Par défaut Signification d'une erreur Oracle
    Salut,
    Estce que vous pouvez me dire a koi est due cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.sql.SQLException: ORA-01861: le littéral ne concorde pas avec le format chaîne de caractères ORA-06512: à ligne 1
    elle est genere quand j'execute la requette suivante a partir de ma servelet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Declare nCount Number ; 
    begin select count(*) into nCount from T_acces where to_date(date_cnx,'dd/mm/yyyy')=to_date(sysdate,'dd/mm/yyyy');  
    If nCount = 0 Then
    begin  insert into T_acces  t(id_cnx) values(9); 
    end ; 
    else 	begin  insert into T_acces  t(id_cnx) values(56) ; end ; 
    End If ;End ;
    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Points : 78
    Points
    78
    Par défaut
    sysdate est déjà du type DATE, tu n'as pas besoin de le convertir.

    En revanche sysdate contient les secondes, si tu veux le comparer avec l'opérateur = à une date qui ne contient pas de secondes, il faut utiliser la fonction trunc()


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where to_date(date_cnx,'dd/mm/yyyy')=trunc(sysdate);
    Tu trouveras de l'aide dans la doc Oracle sur la fonction trunc (il est possible également de tronquer au mois ou à l'année près, mais par défaut c'est la journée.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    ca ne résoud pas mon probleme j'ai toujours cette erreur

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Points : 78
    Points
    78
    Par défaut
    Est-tu certain du format de ton champ date_cnx ?

    Pour appliquer la fonction to_date(), ce champ doit être de type VARCHAR2 et la format de toutes les lignes doit être celui précisé en deuxième paramètre.

    Si ta colonne est de type DATE, alors même punition que pour le sysdate : ne pas utiliser to_date(), mais trunc() pour ramener la date à un format "jour entier".

  5. #5
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    merci de faire par vous-même une première étape qui consiste à "dégrossir" le travail de débug (qui n'est pas, rappellons-le, la vocation d'un forum d'entraide).

    POur cela, merci de
    • Isoler l'instruction précise qui provoque l'erreur (est-ce l'insert ? le select ? ...)
    • Fournir un jeu d'essai pour que chacun puisse reproduire et investiguer


    De plus, en réalisant ceci, vous vous rendrez sûrement compte de votre erreur ! ;-)

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    where date_cnx=to_char(sysdate,'dd/mm/yyyy');
    est dans certains cas plus rapide

    PS: si date_cnx est de type date, alors date_cnx=sysdate voire date_cnx=trunc(sysdate) fera l'affaire

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    merci xavi tu as raison c'est la conversion to_date de ma colonne date_cnx qui posait probleme

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

Discussions similaires

  1. Récupérer le code d'une erreur Oracle
    Par etoileDesNeiges dans le forum SQL
    Réponses: 6
    Dernier message: 04/10/2007, 10h22
  2. [Dojo] Erreur « elements has no properties »
    Par fayred dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 20/09/2007, 18h24
  3. Signification d'une erreur
    Par Sour0013 dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/07/2007, 15h39
  4. signification d'une erreur
    Par mmb04 dans le forum Langage
    Réponses: 18
    Dernier message: 11/05/2007, 17h24
  5. [VB6] Signification d'une erreur
    Par jerzy59 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 05/05/2006, 18h51

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