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 :

Récupérer champ DATE Oracle en Java


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Points : 69
    Points
    69
    Par défaut ORA-03115: unsupported network datatype or representation - Quel champ ?
    Bonjour,

    J'ai un petit souci dans le développement de mon application avec une belle erreur de type SQLException --> ORA-03115: unsupported network datatype or representation

    La requête qui semble poser problème est la suivante (je sais qu'elle est juste car je l'ai testée directement et tout roule c'est l'interfaçage avec Java qui merde) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT Date, Nom, sum(Valeur) 
    FROM Classement
    WHERE Date<TO_DATE('2006-01-30 00:00:00','YYYY-MM-DD HH24:MI:SS') 
    group by Nom, Date
    ORDER BY Date, Nom";
    J'obtiens un truc du style
    2006-01-27 09:52:13 | P. Vernon | 35.14


    Mon code java associé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     Context context = new InitialContext();
    DataSource dataSource = (DataSource) context.lookup(dataSourceName);
    connection = dataSource.getConnection();
    statement = connection.prepareStatement(sql); //sql contient ma requete
    resultSet = statement.executeQuery(); 
    Date maDate=null;
    Lors de l'exécution de la ligne resultSet = statement.executeQuery(); j'obtiens mon exception.

    Je me dis que ça doit venir de la DATE mais en même temps je ne suis pas sûre. Si quelqu'un a une piste (sachant que je ne peux pas changer le driver de connection à ma base oracle car il est partagé avec d'autres appli et qu'il faudrait checker toutes les applis qui tournent).

    Merci d'avance


    Edit : Changement du titre car le pb ne se situait pas dans le champ DATE

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Quel est ton driver ?

    A tout hasard, tu peux nous montrer le String "sql" ... ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Points : 69
    Points
    69
    Par défaut
    No soucy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String sql = "SELECT Date, Nom, sum(Valeur) "
    +"FROM Classement "
    +"WHERE Date<TO_DATE('2006-01-30 00:00:00','YYYY-MM-DD HH24:MI:SS') "
    +"group by Nom, Date "
    +"ORDER BY Date, Nom";

    Pour le driver à dire vrai je sais pas où trouver l'info c'est pas moi qui fais les install et je maitrise pas trop ce genre d'environnement

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Points : 69
    Points
    69
    Par défaut
    la version de JDBC : 9.0.1.5.0

    J'ai ajouté ces deux lignes pour la connaitre ... Je le note au cas où cela puisse aider quelqu'un ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DatabaseMetaData dmd = connection.getMetaData(); 
    System.out.println("JDBC Driver version: " + dmd.getDriverVersion());

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    La date de comparaison représente un paramètre ou elle est fixe ?

    Si déjà tu passes par un PreparedStatement, il serait judicieux d'utiliser ses possibilités
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    PreparedStatement pstmt = connection.prepareStatement("SELECT Date,Nom,sum(Valeur) FROM Classement WHERE Date < ? group by Nom, Date ORDER BY Date, Nom");
    pstmt.setDate(1, uneSqlDate);
    ResultSet rs = pstmt.executeQuery();
    while ( rs.next() )
    {
       ...
    }
    Après pour créer ton paramètre java.sql.Date, tu peux partir de SimpleDateFormat

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Points : 69
    Points
    69
    Par défaut
    Oui OButterlin je suis au courant mais je t'explique étant en mode debug, je simplifie mes requêtes au maximum afin de ne pas avoir des pb qui se greffent entre eux ... Le fait que la date de comparaison puisse changer je le gèrerai plutard et l'ai déjà fait ... Merci quand même !

    Bo n pour en revenir à mes moutons : il semblerait que le pb ne vienne pas du champ DATE mais du champ Valeur qui est déclaré comme un BINARY_DOUBLE (ou de la sum sur celui-ci d'ailleurs à tester).
    En effet, si je le supprime du select le sum(Valeur) je n'ai plus ce problème ... Mais ça ne m'arrange pas car j'ai besoin de récupérer cela !!

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Points : 69
    Points
    69
    Par défaut
    Le binary_double a été transformé en base en un simple Float ...
    Qui se récupère le plus simplement du monde !
    Maintenant tout est OK ... ou presque !

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

Discussions similaires

  1. Mapping Hibernate Date avec champ date Oracle 10g
    Par tdeco dans le forum Hibernate
    Réponses: 0
    Dernier message: 25/01/2011, 10h28
  2. Réponses: 3
    Dernier message: 24/09/2008, 16h23
  3. Récupération de la date Oracle en Java
    Par Lex92 dans le forum JDBC
    Réponses: 6
    Dernier message: 05/03/2008, 13h39
  4. Récupérer la date dans un champ
    Par david71 dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 21/09/2005, 16h44
  5. problème champ date dans base oracle
    Par ludovik dans le forum Oracle
    Réponses: 6
    Dernier message: 25/07/2005, 15h48

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