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 :

Requête qui fonctionne sous SQL Developper, mais pas sous java


Sujet :

JDBC Java

  1. #1
    Invité
    Invité(e)
    Par défaut Requête qui fonctionne sous SQL Developper, mais pas sous java
    Bonjour,

    Ma base de donnée est une Oracle 10g

    J'ai une requête basique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NOM_TABLE FROM ARCHIVE_DESC
    * Lorsque j'execute cette requête sous SQL Developper (un client oracle), la requête me retourne 4 résultats

    * Lorsque j'execute cette requête par le code via JAVA, je n'ai aucun résultat de retourné.

    Mon code JAVA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // J'execute la donnée
    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
     
    ResultSet nomDesTables = stmt.executeQuery("SELECT NOM_TABLE FROM ARCHIVE_DESC");
     
    // Ensuite je parcours les données :
    while (nomDesTables.next())
    {
          ...
    }
    En debug, je constate que je ne rentre jamais dans le while.

    Je ne vois vraiment pas d'ou peut venir l'erreur

    Thx d'avance

  2. #2
    Membre confirmé

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Points : 553
    Points
    553
    Par défaut
    Le user avec lequel tu créés ta connexion est-il le même dans les 2 cas ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Oui c'est le même user, même mot de pass.

    Le driver que j'utilise est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oracle.jdbc.driver.OracleDriver
    Et la chaine de connexion est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jdbc:oracle:thin:@NOM_SERVEUR:1521:POLDEV2
    Je précise que j'ai d'autre requêtes qui fonctionnent très bien.

    Pas d'idée?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    Salut,

    Ne te trompes-tu pas de serveur dans un des 2 cas ?

    Par expérience, ça m'est arrivé souvent de chercher des erreurs dans le code et pour finalement me rendre compte que j'exécutais ma requête dans un client SQL sur un serveur, et je débuggais sur un autre serveur ...

    En tout cas, il n'y a aucune raison. Requête identique sans paramètre, seul l'accès à la bdd peut expliquer le problème : user/serveur ...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bin nan je ne me trompe pas de serveur,
    j'en suis sur car 1/ j'ai vérifié, 2/ d'autre requêtes fonctionnent et corresponde bien au données présentes sur ce serveur.

    J'ai pensé regarder dans le log oracle pour vérifier si la requête qu'il reçoit est bien la même que celle que je lui envoi (peut-être que l'api java me la modifie?), mais je ne trouve pas ce fichier de log (s'il existe!)

    Sinon j'avais déjà eu le même problème avec une autre requête, et je l'avais résolu en changeant le nom de la table (en le raccourcissant), et j'en avais conclus que l'API java me tronquais le nom de la table.

    Cette fois si ça ne peut pas être ça car le nom de la table ARCHIVE_DESC est de taille normale (12 caractères à peine).


    A tout hasard je vous met le script de création de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE ARCHIVE_DESC 
       (	NOM_TABLE VARCHAR2(30 BYTE), 
    	LIBELLE_TABLE VARCHAR2(100 BYTE), 
    	 CONSTRAINT "ARCHIVE_DESCRIPTION_PK" PRIMARY KEY ("NOM_TABLE")  )

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'ai trouvé comment résoudre mon problème,

    mais je n'arrive toujours pas à expliquer d'où viens le bug !

    En fait j'ai remarqué que la requête ne fonctionne PAS lorsque je l'execute après avoir créé la table manuellement.

    Par contre, la requête FONCTIONNE lorsque je l'execute après l'avoir renommée la table avec l'interface graphique de SQL Developper (bien sur je corrige la requête pour qu'elle selectionne la nouvelle table)

    Donc ma solution bidouille :
    - Je crée ma table "MATABLE"
    - Je la renomme en "nimporteQuoi" par l'interface graphique de SQL Developper
    - Je la renomme en "MATABLE"

    ... Et sa marche.


Discussions similaires

  1. Réponses: 9
    Dernier message: 20/01/2012, 23h49
  2. Réponses: 10
    Dernier message: 18/05/2011, 14h56
  3. ActiveX : fonctionne en version Web mais pas sous Access message
    Par picolo5 dans le forum Bases de données
    Réponses: 1
    Dernier message: 13/12/2006, 17h20
  4. Réponses: 1
    Dernier message: 13/12/2006, 17h20
  5. Réponses: 4
    Dernier message: 27/09/2005, 22h00

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