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;														      										        											        		  
											        	  }
											           }
 
											           }
						               }
				           }