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 :

pb avec select count(*) qd je relie la bd oracle à java


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut pb avec select count(*) qd je relie la bd oracle à java
    Bonjour,
    j'ai relié une BD oracle à une application java grâce à un driver jdbc-odbc.
    Lorsque je fais des requêtes basiques (SELECT * FROM maTable Where...), je récupère ce que je souhaite. Mais dès lors où je fais un SELECT COUNT(*) plus rien ne marche et cela me renvoie l'erreur java.sql.SQLException: Ensemble de résultats épuisé..
    Je ne sais pas à quoi cela peut être dû. J'ai essayé de fermer le résulset, de le stocker dans un tableau mais rien à faire l'erreur persiste. Je vous joins donc mon code initial si vous pouviez m'aider svp.

    try {

    Class.forName("oracle.jdbc.OracleDriver");
    Connection con = DriverManager.getConnection( "jdbc:oracle:thin:adresse ,"users,"mdp");
    Statement stmt = con.createStatement();

    for (int i=0;i<tabUf.size();i++){
    resultat=stmt.executeQuery("SELECT COUNT (*) FROM maTable1, maTable2 WHERE VMTYP="+test.tablBord.jLabel68.getText()+"ED"+test.tablBord.jLabel68.getText()+"AND VMUFA="+ tabUf.get(i)+" AND Table1.DOSNUM=Table2.DOSNUM AND HVSEJ.VMDD<="+date1+" AND HVSEJ.VMDD>="+date2+" GROUP BY VMUFA ");
    resultat.next();
    edTemp=Integer.parseInt(""+resultat.getString(1));
    System.out.println("edtemp"+edTemp);
    }
    edTemp1=edTemp+edTemp1;
    }
    con.close();
    } catch (NumberFormatException ex) {
    ex.printStackTrace();
    } catch (ClassNotFoundException ex) {
    ex.printStackTrace();
    } catch (SQLException ex) {
    ex.printStackTrace();
    }

    Merci d'avance

  2. #2
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Bonjour,

    je ne connais pas trop java, mais est ce que ce ne serais pas la commande "resultat.next();" qui pose pb ? parce que mise à part le résultat du count, je ne suis pas sure qu'il y ai un résultat dans next.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    merci kalyparker de ta réponse.
    mais lorsque je fais une requête je suis bien obligée de mettre résultat.next.
    De plus, j'ai essayé de faire une requête de même type avec mySql et là ça ne pose pas de problèmes donc j ' avoue que je suis un peu perdu.

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Avant de faire un next, il faut peut_etre faire un First ou qq chose dans le genre , non ?

  5. #5
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    C'est peut etre la construction de ton "WHERE" qui ne marche pas.
    Essaye sans le WHERE dans la boucle.
    Et fait afficher la requete génere pour voir si elle marche telle quelle dans un autre outils (copier/coller) !

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci Garuda,
    le problème est que ma syntaxe java semble tout à fait correcte car lorsque je fais la même chose mais avec mysql en base de données cela fonctionne donc le problème semble venir de ma requête sur oracle elle même. Je vais essayer sans le where voir ce que cela donne.
    Merci encore

  7. #7
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut
    Salut,
    D'un point de vue Oracle ta clause where dans ce sqltexte concaténé ne peut pas produire à mon avis un sql correct car
    AND HVSEJ.VMDD<="+date1+" AND HVSEJ.VMDD>="+date2+"
    ser me semble-t-il compris comme
    je compare un champ date à du texte
    Peux tu essayer en remplaçant
    HVSEJ.VMDD par to_char(HVSEJ.VMDD,'le format de date de ta variable')
    exemple to_char(HVSEJ.VMDD,'dd-mm-yyyy')
    sinon
    to_char(HVSEJ.VMDD,'yyyymmdd')=variable_dans_le_même_format

    Bonne chance

Discussions similaires

  1. Insert avec Select Count
    Par henoch dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/02/2011, 16h22
  2. compteur d'entrée avec SELECT count(*)
    Par pipip dans le forum Langage
    Réponses: 4
    Dernier message: 24/10/2010, 17h48
  3. De l'aide pour Jointure, avec selection count =0
    Par onemart dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/01/2009, 10h01
  4. [MySQL] Optimisation requête avec SELECT COUNT
    Par przvl dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 15/10/2008, 16h27
  5. [SQL] Problème avec SELECT COUNT(*)
    Par jpascal dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2006, 13h37

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