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 :

Problème avec JDBC - Différence entre résultat rendu et données en base


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Problème avec JDBC - Différence entre résultat rendu et données en base
    Bonjour,

    J'ai plusieurs problèmes :
    1/ Lorsque je fais une requete (très simple : un select sur une table sans clause where) le resultat que je recupere n'est pas du tout conforme avec les données en base. J'ai l'impression que le resultat que je recupere concerne des données "antérieures".
    J'ai d'abord pensé à un problème de transaction. J'ai donc effectué un commit sous mon client Oracle, fermé le client Oracle (Toad), executé ma requete qui me renvoie toujours le meme resultat faux... A vrai dire je sais pas trop ou chercher pour le coup.
    A noter que j'utilise le driver Oracle thin. L'Oracle est un 9i.
    2/ Je n'arrive pas sur cette même base à executer via les CallStatements des procédures stockées... J'ai un code retour oracle ORA-20001 qui correspond à une erreur de type "User" ... sauf que celle-ci n'est renvoyée par aucune de mes procédures stockées...

    Donc je sens que les 2 problèmes sont liés...

    Existe-t-il un cache ou qq chose de ce genre qu'il faudrait flusher ? C'est plutot coté serveur ou coté client ?

    J'avoue que je sèche fortement ...

    Merci par avance

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par boubavic
    Bonjour,

    J'ai plusieurs problèmes :
    1/ Lorsque je fais une requete (très simple : un select sur une table sans clause where) le resultat que je recupere n'est pas du tout conforme avec les données en base. J'ai l'impression que le resultat que je recupere concerne des données "antérieures".
    J'ai d'abord pensé à un problème de transaction. J'ai donc effectué un commit sous mon client Oracle, fermé le client Oracle (Toad), executé ma requete qui me renvoie toujours le meme resultat faux... A vrai dire je sais pas trop ou chercher pour le coup.
    A noter que j'utilise le driver Oracle thin. L'Oracle est un 9i.
    2/ Je n'arrive pas sur cette même base à executer via les CallStatements des procédures stockées... J'ai un code retour oracle ORA-20001 qui correspond à une erreur de type "User" ... sauf que celle-ci n'est renvoyée par aucune de mes procédures stockées...

    Donc je sens que les 2 problèmes sont liés...

    Existe-t-il un cache ou qq chose de ce genre qu'il faudrait flusher ? C'est plutot coté serveur ou coté client ?

    J'avoue que je sèche fortement ...

    Merci par avance
    Ca me semble bizarre...

    Tu utilises directement JDBC avec du SQL, ou alors tu utilises un framework ? Si tu lances ta requête sans passer par jdbc directement dans oracle, ca te retourne les résultats voulus ? Tu peut nous montrer ton code ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Je n'utilise pas de framework.

    Pour le code, j'essai de vous montrer ca demain.

    Mais pour le moment je n'ai pas reussi à obtenir un resultat correct...

    Pourtant sur un autre schema ca marche très bien...

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Le code (très...) simple :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    /**
     * 
     */
     
     
    import java.io.*;
    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    import java.util.Vector;
     
    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
     
     
     
    /**
     * @author Admin
     *
     */
    public class ExecSQL {
     
    	//public static Logger logger = Logger.getLogger(ExecSQL.class);
     
    	/**
             * @param args
             * @throws IOException 
             * @throws ClassNotFoundException 
             * @throws SQLException 
             */
    	public static void main(String[] args) throws IOException, ClassNotFoundException, SQLException {
    		// TODO Auto-generated method stub
    		PropertyConfigurator.configure("properties/log4j.properties");
    		File prop = new File("properties/config.properties");
    		FileInputStream fis = new FileInputStream(prop);
    		Properties properties = new Properties();
    		properties.load(fis);
     
    		String dbUser = properties.getProperty("db.user");
    		String dbPassword = properties.getProperty("db.password");
    		String dbHost = properties.getProperty("db.host");
    		String dbPort = properties.getProperty("db.port");
    		String dbSid = properties.getProperty("db.sid");
     
    		//logger.debug("Arguments : "+args[0]);
    		SQLQuery query = new SQLQuery(args[0]);
     
    //		Connection
    		Class.forName("oracle.jdbc.driver.OracleDriver");
    		//Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@"+dbHost+":"+dbPort+":"+dbSid+"", dbUser, dbPassword);//Connexion pour le select 
    		Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@172.17.254.83:1521:INFABASE", "IS7FRWK", "IS7FRWK");//Connexion pour le select
     
    		System.out.println("dbUser : " + dbUser);
     
    		Statement st = conn.createStatement();
     
     
    		ResultSet rs = st.executeQuery("SELECT F_ID_FLUX, F_CODE_FLUX FROM FDCO_FLUX");
    		Vector toto = new Vector();
     
    		while(rs.next()){
    			System.out.print("RESULT : "+rs.getString(1));
    			System.out.println(" - RESULT : "+rs.getString(2));
    			toto.add("{"+rs.getString(2)+","+rs.getString(1)+"}");
     
    		}
     
     
    		st.close();
    		conn.close();
    	}
     
    }

    Voici le resultat que j'ai en base :
    1 - C01
    2 - C01
    7 - C02A
    etc.

    Voici ce que j'obtiens avec JDBC :
    RESULTAT : 29 - RESULTAT : C01
    RESULTAT : 30 - RESULTAT : C01

    A noter que j'ai refait le meme test sur plusieurs bases ...

  5. #5
    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
    tu es sûr que tu attaques les même shémas en jdcb et par toad ? T'utilise bien le même user ?
    "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/

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Oui je suis sûr que je tape sur la meme base et le meme schema ...

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Bon ca marche sauf que je ne sais toujours pas pourquoi ...

    J'ai simplement redemarré mon poste et ca a refonctionné ...

    Bref c'est très etrange ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/02/2008, 11h49
  2. Problème avec une liaison entre table
    Par dominou73 dans le forum Hibernate
    Réponses: 7
    Dernier message: 29/10/2007, 15h29
  3. [HTML]Problème avec la touche "entrée" dans un formulaire
    Par WerKa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/06/2007, 20h34
  4. [RegEx] Problème avec les espaces entre deux tags
    Par elcoyotos dans le forum Langage
    Réponses: 9
    Dernier message: 17/04/2007, 11h01
  5. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 15h10

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