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

avec Java Discussion :

Split avec une requête


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 11
    Par défaut Split avec une requête
    S'il vous plait aider moi ,
    Je veux faire un split de cet requette en java et le but est d'extracter tout les prédicat existent dans cette requette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    explain plan set statement_id='test1' into plan_table for SELECT /*+index(a actvar_city_bji*/ AVG(UNITSSOLD) ,CUSTOMER_LEVEL,TIME_LEVEL FROM ACTVARS A,CUSTLEVEL C,PRODLEVEL P,TIMELEVEL T,CHANLEVEL CH WHERE A.CUSTOMER_LEVEL=C.STORE_LEVEL AND A.PRODUCT_LEVEL=P.CODE_LEVEL AND A.TIME_LEVEL=T.TID AND A.CHANNEL_LEVEL=CH.BASE_LEVEL AND P.DIVISION_LEVEL IN ('W4L29U5MH2PH','EOGVOZWSXUZJ') AND P.LINE_LEVEL IN ('RRJ2BVCZ06W5','A0GOH1W5C4QE','TUOYZ8HVPA4V','NA0YR6QURPGM','Q21FD466A8YC','T4FS9XK5TJU5') AND T.QUARTER_LEVEL IN ('Q2','Q4') AND T.DAY_LEVEL IN ('TUESDAY','FRIDAY','MONDAY','WEDNESDAY') AND C.CITY_LEVEL IN ('SANJOSE','TALLAHASSEE','COLUMBIA','TUCSON','LONGBEACH','MIDLAND','WESTMINSTER') AND C.RETAILER_LEVEL IN ('L4ALZZHI3GJY','WCKPLQIQ0AW4','JXJ1D20VJWKD','EN9MSQOVUXFX','S59AX1O2F59P','S89XNEWS6HCJ','STDGQM83YFQN','MJHERP82KIUD')  GROUP BY CUSTOMER_LEVEL,TIME_LEVEL desc plan_table
    j'ai fait ce code mes les resultats sont fausses
    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
     
     while ((line = bufferReader.readLine()) != null)
    				        {
     
    						 if(line.contains(" WHERE "))
    							 temp = line.split(" WHERE ");
     
    				           for(int m = 0; m< temp.length; m++){  
    				         if(temp[1].contains(" AND ")){
     
    				           temp2 =  temp[1].split(" AND ");
    				           System.out.println(temp2[3]);
    					       	}}
     
    				           for (int j=0; j < temp2.length; j++) {
    				        	   if(temp2[j].contains(" IN ")){
    				        		   temp1 = temp2[j].split(" IN ");
    						           for(int m = 0; m<temp1.length; m++){ 
    								         if(temp1[m].contains("GROUP BY")){
     
    								           str4 =  temp1[m].split("GROUP BY");
     
    								              ve.addElement(str4[0]);
    									       	}else{
     
     
    												       if(m==0){
     
    												       str9 = temp1[0].split("\\.");
     
    													    	vecteur.addElement(str9[1]);
     
    	                                                       str9=null;
    												       }
    												       if(m==1)
    												       ve.addElement(temp1[1]);
    									       	}
    									       	}
    						         }else{					            	 							  
    									        	 if(str3[j].contains("='")){
     
    										        	 str6 =  str3[j].split("='");
    											           for(int d = 0; d < str6.length; d++){
     
    											        	  if(str6[d].contains("'")){
    											        		   str7 =  str6[d].split("'");
     
    											        	  for(int w = 0; w < str7.length; w++){
     
    											        	  ve.addElement(str7[w]);}
    											        	  }
    											        	  else{
     
    														       str8 = str6[d].split("\\.");
     
    															    	vecteur.addElement(str8[1]);
    															        str8 =null;														      										        											        		  
    											        	  }
    											           }
     
    											           }
    						               }
    				           }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu vas galérer à mettre au point un parser SQL avec des splits et ça te prendra beaucoup de temps. En plus, tu risques de passer à côté de certains éléments de syntaxe. Tu devrais plutôt utiliser une API toute faire comme JSQLParser par exemple.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 11
    Par défaut merci
    Citation Envoyé par joel.drigo Voir le message
    Salut,

    Tu vas galérer à mettre au point un parser SQL avec des splits et ça te prendra beaucoup de temps. En plus, tu risques de passer à côté de certains éléments de syntaxe. Tu devrais plutôt utiliser une API toute faire comme JSQLParser par exemple.
    merci ms vous pous me donner un exmple du JSQLParser parce je la connais pas

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par houdaùmlk Voir le message
    merci ms vous pous me donner un exmple du JSQLParser parce je la connais pas
    Il y'a toutes les explications nécessaires (avec exemples) sur le site.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 11
    Dernier message: 28/12/2004, 16h15
  2. [Recordset] Incompatibilté de type avec une requête
    Par lbourlet dans le forum Access
    Réponses: 2
    Dernier message: 29/10/2004, 15h52
  3. PB avec une requête Count
    Par Marion dans le forum ASP
    Réponses: 7
    Dernier message: 05/07/2004, 12h56
  4. Pb avec une requête
    Par arsgunner dans le forum ASP
    Réponses: 4
    Dernier message: 14/06/2004, 08h40
  5. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29

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