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 :

Problème SQL / Java / ResultSet


Sujet :

SQL Oracle

Vue hybride

kilicool Problème SQL / Java /... 05/05/2010, 10h41
McM Il faut aliaser les noms des... 05/05/2010, 10h53
kilicool Je suis d'accord avec cette... 05/05/2010, 11h02
Waldar Et donc il prend une donnée... 05/05/2010, 11h21
SheikYerbouti resultset.get(1) résoud... 05/05/2010, 11h25
kilicool Du tout, le driver JDBC de... 05/05/2010, 11h32
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 183
    Par défaut Problème SQL / Java / ResultSet
    Bonjour,

    Je suis confronté à un problème avec Oracle 9.2.0.8 et le drivers OJDBC14.JAR

    En effet, en java, si je declare un resultset avec la requête du genre "SELECT table1.champ1 , table2.champ2 from table1, table2" et que je fais un resultset.getString("table1.champ1"), il m'envoi sur les roseaux avec l'erreur suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    java.sql.SQLException: Nom de colonne non valide
            at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
            at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
            at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
            at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3291)
            at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:1914)
            at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1515)
            at weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.getString(Unknown Source)
    Si je fais un resultset.get("champ1") ou resultset.get(1) cela fonctionne mais quid du jour ou deux champs seront nommé de la même façon dans deux tables différentes et que je désire récupérer ces 2 champs dans 1 requête ?

    Merci

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Il faut aliaser les noms des champs si plusieurs ont le même nom, ou si pas de nom de défini (exemple une fonction appelée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT dummy as a, dummy as b, trim(dummy) as t, dummy FROM DUAL
    Et dans le result tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    get("a"), get("b"), get("t") et get("dummy")

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 183
    Par défaut
    Je suis d'accord avec cette solution mais je la trouve très lourde ...

    MySQL ne pose pas ce genre de soucis

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par kilicool Voir le message
    MySQL ne pose pas ce genre de soucis
    Et donc il prend une donnée au pif dans parmis celles qui ont le même nom ?
    Super

  5. #5
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    résoud parfaitement votre problème.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 183
    Par défaut
    Citation Envoyé par SheikYerbouti Voir le message
    résoud parfaitement votre problème.
    Oui & non car sur de la génération de requête dynamique, on en sait pas toujours où est situé telle ou telle information

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 183
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Et donc il prend une donnée au pif dans parmis celles qui ont le même nom ?
    Super
    Du tout, le driver JDBC de MySQL accepte le resultset.get("table.colonne") donc aucune confusion.

Discussions similaires

  1. Problème SQL Java
    Par B.M.W83 dans le forum JDBC
    Réponses: 2
    Dernier message: 09/06/2014, 20h57
  2. Réponses: 2
    Dernier message: 26/09/2012, 13h02
  3. Problème float java à float sql
    Par littlebear dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 28/03/2012, 18h39
  4. problème d'une requete SQl java vers oracle
    Par bingo06260 dans le forum JDBC
    Réponses: 4
    Dernier message: 21/06/2011, 08h58
  5. problème avec java.sql.Date sous WinXp BEA Apache
    Par astaroth_vertigo dans le forum Hibernate
    Réponses: 5
    Dernier message: 06/09/2007, 09h20

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