probleme de date avec PreparedStatement
J'ai une table Oracle nommée "DOSSIER" qui contient (entre autres) ceci :
Code:
1 2 3 4 5
|
ETAT NOM DATE
-------- ---- ----------
TERMINE toto 20/01/2009
TERMINE toto 20/01/2009 |
les colonnes ETAT et NOM sont des VARCHAR2(50) et la colonne DATE et de type DATE.
Lorsque je fais une requête paramétrée seulement sur les colonnes ETAT et NOM, ça marche très bien :
Code:
1 2 3 4 5 6 7 8 9 10
|
// initialisation de la connexion (marche bien)
final Connection cnx = getConnection();
// requete a executer
final String query = "select doss.ETAT, doss.NOM, doss.DATE from DOSSIER where doss.ETAT = ? AND doss.NOM = ?";
final PreparedStatement statement = cnx.prepareStatement(query);
// initialisation des parametres
statement.setString(1, "TERMINE");
statement.setString(2, "toto");
final ResultSet result = statement.executeQuery(); |
Dans mon result, j'ai bien les 2 resultats qui sont en base
Mais si j'ajoute le paramètre de type Date, alors la requête ne fonctionne plus :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
final SimpleDateFormat formater = new SimpleDateFormat("dd/MM/yyyy");
final java.util.Date date = formater.parse("20/01/2009");
final java.sql.Date sqlDate = new java.sql.Date(date.getTime());
// initialisation de la connexion (marche bien)
final Connection cnx = getConnection();
// requete a executer
final String query = "select doss.ETAT, doss.NOM, doss.DATE from DOSSIER where doss.ETAT = ? AND doss.NOM = ? AND doss.DATE = ?";
final PreparedStatement statement = cnx.prepareStatement(query);
// initialisation des parametres
statement.setString(1, "TERMINE");
statement.setString(2, "toto");
statement.setDate(3, sqlDate);
final ResultSet result = statement.executeQuery(); |
La requête ne renvoie aucun resultat, alors que pourtant la condition se fait sur la bonne colonne et la date passée en paramètre est bien la même que la date en base.
Quelqu'un aurait-il une idée car la je seche ?
Merci d'avance