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 :

[JDBC] probleme avec des parentheses dans une requetes.


Sujet :

JDBC Java

  1. #1
    Membre actif
    Inscrit en
    Mars 2004
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 247
    Points : 293
    Points
    293
    Par défaut [JDBC] probleme avec des parentheses dans une requetes.
    Bonjour j'ai une connection jdbc sur oracle 8 et j'ai un probleme lorsque j'execute une requete qui commence par une parenthese.
    Exemple :
    (select a from b where c intersect select a from b where d) union (select a from b where e intersect select a from b where f);

    Des que ma requete commence par une parenthese statement.execute(maRequete) me renvoi toujours faux et donc aucun resultat.

    Or si j'effectue cette requete sous toad ou sqlplus elle me renvoi les bons resultats.

    J'aimerais donc savoir si quelqu'un a deja eu ce genre de probleme et saurait comment le corriger.

    Merci

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    je ne sais pas si ca resoudra ton probleme.
    Je ne sais toujours pas a quoi correspond execnativeSQLQuery ou une methode de ce genre.

    est ce que ca serait pour ce genre d'imprevu?

  3. #3
    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 peux montrer ton code à tout hasard ?

  4. #4
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Je me rappelle avoir déjà eu des problèmes avec union. Je vais chercher.

    C'est pas un souci de ';' à la fin ?

  5. #5
    Membre actif
    Inscrit en
    Mars 2004
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 247
    Points : 293
    Points
    293
    Par défaut
    j'ai fait un programme tout simple juste pour tester :

    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
     
    try {
    	//Creation of the driver to use the Connection Pool
    	System.out.println("Loading underlying JDBC driver.");
    	try {
    	   Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    	    System.out.println("JDBC driver loading : Done.");
    	} catch (ClassNotFoundException e) {
    	    System.out.println("Error Setting up driver.");
    	    e.printStackTrace();
    	} catch (InstantiationException e) {
    	    e.printStackTrace();
    	} catch (IllegalAccessException e) {
    	    e.printStackTrace();
    	}
     
    	Connection con = DriverManager.getConnection("jdbc:oracle:thin:@test:1515:ORCL","system","system");
     
    	Statement stmt= con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
     
    	String myReq= "(Select reference from document where id_nature=170 intersect select reference from document where revision='-')";
     
     
             if(stmt.execute(myReq)){
    	System.out.println("requete ok");
    	ResultSet myResult = stmt.getResultSet();
    	while (myResult.next()){
    	   System.out.println(myResult.getString(1));
    	}
              }
              else{
    	System.out.println("requete ko");
              }
     
              } catch (SQLException e) {
    	// TODO Auto-generated catch block
    	e.printStackTrace();
               }
    }
    VOila avec une requete toute simple mais qui commence par une parenthese, si je retire les parentheses ca marche, ma requete me donne les bons resultats.
    Mais bien sur je ne peux pas tout le temps retirer les parenthese comme dans mon premiere exemple.

    Et j'ai aussi tester sous oracle 10g et la cela fonctionne, donc je ne comprend pas quel est le probleme avec oracle 8.

    Et pour eclesia : je ne vois pas ou est ta fonction execnativeSQLQuery...
    Et pour thibault : je viens d'essayé de mettre un ; a la fin de ma requete et ca marche pas mieux...

  6. #6
    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 peux peut etre essayer ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select * from 
              (select a from b where c 
                intersect 
               select a from b where d)
              union 
              (select a from b where e 
               intersect 
               select a from b where f))
    A adapter si tu ne veux pas récupérer *

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/02/2010, 09h49
  2. probleme avec les dates dans une requete
    Par obydissonn dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/06/2008, 12h52
  3. INSERER DU TEXTE AVEC DES CHAMPS DANS UNE REQUETE SUR sql Srv 2000
    Par sauceaupistou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 10h02
  4. Réponses: 2
    Dernier message: 21/02/2007, 13h28
  5. probleme avec des calculs et une requete de mise a jour
    Par el_quincho dans le forum Access
    Réponses: 2
    Dernier message: 16/03/2006, 10h06

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