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 avec la fonction to_date


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut erreur avec la fonction to_date
    Bonjour,

    Je suis en train de finir un projet Java / Oracle et je dois faire une insertion dans la base depuis mon programme.

    Ma requête est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into employe (numero,nom,prenom,mail,date_entree,code_fonction,code_service)values ('abc123','aaaaa','bbbbb','aaaa@bbbb.com','TO_DATE('27-Feb-11','DD-MON-YY')','DBA','INFO');
    Oracle me renvoie une erreur ORA-00917:
    missing comma que je ne comprend pas.
    Quand je fais la requête suivante directement avec Oracle ça marche mais pas en Java (ça je pense que c'est parce que côté Java tout est considéré comme chaîne de caractères) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into employe (numero,nom,prenom,mail,date_entree,code_fonction,code_service)values ('abc123','aaaaa','bbbbb','aaaa@bbbb.com','27-Feb-11','DBA','INFO');
    Merci de votre aide.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    insert into employe (numero,nom,prenom,mail,date_entree,code_fonction,code_service)
    values ('abc123','aaaaa','bbbbb','aaaa@bbbb.com',
    'TO_DATE('27-Feb-11','DD-MON-YY')',
    'DBA','INFO');
    Le to_date ne doit pas être entre quotes c'est une fonction et pas une chaîne de caractères.
    Je pense que après 'TO_DATE' qui est une chaîne Oracle attend une virgule.
    Vous devriez retirer ces quotes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    insert into employe (numero,nom,prenom,mail,date_entree,code_fonction,code_service)
    values ('abc123','aaaaa','bbbbb','aaaa@bbbb.com',
    TO_DATE('27-Feb-11','DD-MON-YY'),
    'DBA','INFO');
    Pozzo

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut Je progresse ...
    Merci de votre réponse,

    Je progresse, car en retirant les quotes, ce n'est plus la fonction TO_DATE qui est en erreur.
    Maintenant j'ai cette erreur :
    ORA-01843 : ce n'est pas un mois valide
    Alors que quand j'exécute la même requête directement dans Oracle ça marche !

    Il y a un post à ce sujet sur developpez.net mais la solution était de changer des variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER session SET nls_date_format = 'DD-MON-YY';
    ALTER SESSION SET nls_language = 'FRENCH';
    quand je l'ai fait, que ce soit en ENGLISH ou FRENCH, j'ai toujours cette même erreur 01843.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut Réponse à moi même
    J'ai trouvé une alternative à ce problème de date :
    J'utilise la variable CURRENT_DATE de Oracle.

  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
    Vous n'avez pas compris grand chose n'est pas vrai ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
    Connected as mni
     
    SQL> 
    SQL> Select TO_DATE('27-Feb-11','DD-MON-YY')
      2  From Dual
      3  /
     
    Select TO_DATE('27-Feb-11','DD-MON-YY')
    From Dual
     
    ORA-01843: ce n'est pas un mois valide
     
    SQL> 
    SQL> Select TO_DATE('27-Févr.-11','DD-MON-YY')
      2    From dual
      3  /
     
    TO_DATE('27-FÉVR.-11','DD-MON-
    ------------------------------
    27/02/2011
     
    SQL>
    Il est très probable que vous voulez dire sysdate et non pas current_date.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut
    Effectivement je n'avais pas compris grand chose...
    J'ai trouvé une solution de dépannage car j'avais un projet à finir urgemment.

    Je comprend mieux avec vos explications, ce n'est pas qu'un problème de dates c'est aussi un problème de langue.

    Par contre pour la solution que j'ai trouvé, je ne sais pas si c'est une bonne chose mais j'utilise bien CURRENT_DATE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into employe values ('truc','truc','truc','truc',CURRENT_DATE,'truc','truc')

  7. #7
    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
    Sysdate et Current_Date
    A vous de voir quelle est la plus appropriée.

Discussions similaires

  1. Erreur avec la fonction Make .
    Par seboyoyo dans le forum Linux
    Réponses: 3
    Dernier message: 06/10/2007, 01h31
  2. [Formule]Erreur avec la fonction recherchev
    Par solorac dans le forum Excel
    Réponses: 4
    Dernier message: 19/04/2007, 17h09
  3. [XSLT] erreur avec les fonctions
    Par frouge dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 18/07/2006, 10h15
  4. [Mail] erreur avec utilisation fonction mail
    Par taka10 dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2006, 16h19
  5. erreur avec la fonction putfile() sur connexion FTP
    Par stefane1981 dans le forum C++
    Réponses: 2
    Dernier message: 23/09/2005, 09h13

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