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

JDBC Java Discussion :

date en java - oracle


Sujet :

JDBC Java

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Points : 100
    Points
    100
    Par défaut date en java - oracle
    Bonsoir
    Dans un programme j'ai une classe qui contient des données au format date. Je dois envoyer ces informations dans une base de données oracle. Dans mon code java je crée donc ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date maDate = new Date();
    Ce qui me renvoit donc : Sun Mar 18 01:34:06 CET 2007

    Cependant je ne peux pas ajouter ceci a la base de données une ereur de "virgule absente" etant presente. J'ai essayé de parser cette date mais sans succes. Quelqu'un aurait il une idée pour resoudre ce probleme? Peut etre parser (correctement cette fois) la date pour qu'elle convienne au type date defini dans oracle non?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Premièrement, il faut utiliser le type java.sql.Date, et ensuite il est préférable d'utiliser des PreparedStatement pour laisser le driver convertir la date au bon format...

    La FAQ et les tutos JDBC contiennent plein d'info sur ce sujet...

    a++

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Points : 100
    Points
    100
    Par défaut
    merci de votre reponse j'ai donc pris le temps de regarder les differentes tutos.
    j'ai donc initialisé ma date d ela facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    java.util.Date date = new java.util.Date();
     
    java.sql.Date dateSQL = new java.sql.Date(date.getTime());
    la date retournée est donc : 2007-03-18

    Cependant la encore impossible de realiser une insertion, oracle repondant que 2007-03-18 est du type number au lieu d'un type date. Etrange non?

  4. #4
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Bonjour,

    comment insère-tu la date dans la base ? montre-nous le code d'insertion.

    @+


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Points : 100
    Points
    100
    Par défaut
    voici le code java de ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String requeteInsertVersion = "insert into Version values (1, " + null + " , '" + v.getLibelle() + "', " + v.getAuteur() + " , " + v.getCheminFichier() + " , " + v.getDateCreation() + ")";
    ce qui donne lors de la tentative d'execution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into Version values (1, null , 'Version test', 1 , null , 2007-03-18)
    Les autres types de données sont corrects, l'erreur provient de la date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.sql.SQLException: ORA-00932: types de données incohérents ; attendu : DATE ; obtenu : NUMBER

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Il me semble que les dates doivent être entre quotes...

    Mais comme je l'ai dit, il vaut mieux utiliser des PreparedStatement afin de laisser le driver JDBC se charger de la conversion des données :

    Les instructions paramétrées - PreparedStatement

    a++

Discussions similaires

  1. Problème de format de date entre Java et Oracle
    Par NFHnv dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 16/07/2013, 14h56
  2. Java & Oracle : passage de Date
    Par Invité dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 21/12/2009, 15h14
  3. JAVA + ORACLE Problème de récupération de date
    Par littlebear dans le forum JDBC
    Réponses: 2
    Dernier message: 11/02/2009, 12h03
  4. Problème de date java - oracle
    Par Dobyan08 dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2007, 11h55
  5. Problème de date avec JAVA & Oracle
    Par bobic dans le forum JDBC
    Réponses: 2
    Dernier message: 02/11/2006, 12h21

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