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 :

[java/jdbc]SIMPLE REQUETE SQL: expression abssente


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 33
    Points : 17
    Points
    17
    Par défaut [java/jdbc]SIMPLE REQUETE SQL: expression abssente
    bonjour en fait dans mon code j'essai d'apliquer une requete SQL


    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
     
    public Vector executeQuery(String[] Element_a_retirer,String tableName)
    {
    	 Vector dataSet = new Vector();
    	 String[] retire = {"CREE_PAR,","DATE_CREATION",",MAJ_PAR",",DATE_MAJ"};
     
        //String[] h = getColonneNom("GA_INDEX",retire);	
     
     
     
     
      try
      {
      System.out.println(1);	
     rs = stmt.executeQuery(" SELECT " + retire +  "FROM " + tableName);
     System.out.println(2);
     ResultSetMetaData md = rs.getMetaData();
     
     
    int nColumns = md.getColumnCount();
    //System.out.println(nColumns);
    while(rs.next())
    {
       Vector rowData = new Vector();
        for(int i=1;i<=nColumns;i++)
        {
          rowData.addElement(rs.getObject(i));
      //    System.out.println(rs.getObject(i));
        }
        dataSet.addElement(rowData);
    }
     
    }
    catch(SQLException eee)
    {
    System.err.println(eee.getMessage());
    }
    return dataSet;
    }
    EN FAIT je veut a travers ce SELECT ne pas choisir tous les elements de la table ; mais juste certains , et comme l'operations ve se repeter sur une centaine de table j'ai pas envie de m'amuser a taper les nom de tous les elements


    mon code de compile mais j'obtient l'expression a l'execution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORA: 00936   expression absente
    et merci

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Au niveau de la création de ta String de requête, j'ai l'impression que le FROM sera collé au "retire" ce qui donnerait quelque chose comme : " SELECT iciretireFROM nom_table" d'où l'erreur Oracle. Je ne sais pas si ton erreur est là.
    K

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    j'ai eu beau laiser des espaces ça ne passe pas

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    L'erreur vient de la ligne de code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs = stmt.executeQuery(" SELECT " + retire +  " FROM " + tableName);
    retire est un array de string. La SQL requête résultante sera:
    "SELECT [Ljava.lang.String;@126b249 FROM TABLE"


    Une solution possible est de parcourir l'array de string:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            StringBuffer sql = new StringBuffer();
            sql.append("SELECT ");
            for (int i = 0; i < retire.length;++i ) {
            	sql.append(retire[i]);
            }
            sql.append(" FROM ");
            sql.append(tableName);
            rs= stmt.executeQuery(sql.toString());
    N'as-tu pas remarqué la requête SQL malformée avec les println?
    Bien le bonjour chez vous
    Jowo

  5. #5
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Toujours la même erreur ORA ?

    Peux-tu essayer de créer un String de ta requête, et l'afficher en System.out.prinln, pour voir si la requête est bien formée ?
    K

  6. #6
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Oui je venais aussi de penser au coup du toString() de l'Array.
    K

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    KiLVaiDeN


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    StringBuffer sql = new StringBuffer();
            sql.append("SELECT ");
            for (int i = 0; i < retire.length;++i ) {
               sql.append(retire[i]);
            }
            sql.append(" FROM ");
            sql.append(tableName);
            rs= stmt.executeQuery(sql.toString());
    bien vu ça marche nikel


    et merci jowo , KiLVaiDeN a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requete sql "expression absente"
    Par kaking dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/06/2009, 09h00
  2. Réponses: 1
    Dernier message: 10/01/2007, 09h39
  3. [JDBC][SQL] Parser une requête SQL
    Par tomca dans le forum JDBC
    Réponses: 11
    Dernier message: 24/10/2005, 23h13
  4. Plantage requete SQL simple sous Delphi7/ADO avec Access
    Par tomy29 dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/08/2005, 11h09
  5. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    Réponses: 3
    Dernier message: 13/09/2004, 14h40

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