j'ai testé la reqûete via un client de connexion (TOAD) à la base de donnée (Oracle 10g)
la requpête s'exécute bien et donne des resultats corrects

sauf que quand je passe à l'exécution de cette même requête en utilisant PreparedStatment ça fonctionne pas, et j'ai droit à une erreur ORACLE :
ORA-0xxxx : invalid month
j'ai essayé avec plusieurs formats de la date :

dd/MM/yyyy ; yyyy/MM/dd ; dd-MM-yyyy ; yyyy-MM-dd

mais ça marche pas:

voici ma partie de code avec les declarations:

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
KeyNamePair key ;
 
       SimpleDateFormat form= new SimpleDateFormat("yyyy/MM/dd");
 
 
	    /*requete de chargement des détails du régime horaire selon l'employé*/
		String sql =  "SELECT REGIME_HORAIRE, SAISON_REGIME, HEURE_DEB_SERVICE, HEURE_DEBUT_REPAS, HEURE_FIN_REPAS, HEURE_FIN_SERVICE "
			+ "FROM   CUST_CONTRAT a , CUST_REGIMEHORAIRE b, CUST_REGIMEVARI c, CUST_REGIMESAISON d " 			
			+ "WHERE  a.CUST_EMPLOYEE_ID =?" 		
 			+ "AND    a.CUST_REGIMEHORAIRE_ID=b.CUST_REGIMEHORAIRE_ID "		
			+ "AND    b.CUST_REGIMEHORAIRE_ID=c.CUST_REGIMEHORAIRE_ID "			
			+ "AND    c.CUST_REGIMESAISON_ID=d.CUST_REGIMESAISON_ID " 			
			+ "AND    d.DATE_DEB_VALIDITE >= ? "
                        + "AND    d.DATE_FIN_VALIDITE <=? ";
 
		try{	
			/*création de la requête*/
			PreparedStatement pstmt = DB.prepareStatement(sql);
 
			/*remplissage des variables dans la requête*/
			key =(KeyNamePair) employee.getSelectedItem();
			pstmt.setInt(1,key.getKey());
 
			pstmt.setString(2,form.format(dateDeb.getValue()));			
			pstmt.setString(3,form.format(dateFin.getValue()));
 
			/*exécution de la requête*/
 
			ResultSet rs = pstmt.executeQuery();
 
 
			int i=0;
			while(rs.next())
			{/*chargement des détails dans les champs d'un  tableau*/
				regim.setValueAt(rs.getString(1),i,0);
			        regim.setValueAt(rs.getString(2),i,1);
				regim.setValueAt(rs.getString(3),i,4);
				regim.setValueAt(rs.getString(4),i,5);
				regim.setValueAt(rs.getString(5),i,6);
				regim.setValueAt(rs.getString(6),i,7);
				i++;
			}
		}
 
		catch (Exception e)
		{
			System.out.println("error:" + e );
		}