-
jdbc delete date
j'ai une requete:
delete from adage.pegrade where COD_EJA=4 and COD_GRADE='test' and DAT_DGRADE='2005-07-06 00:00:00'
que j'execute vie jdbc sur une base oracle
et l'erreur suivante apparait :
ORA-01861: le littéral ne concorde pas avec le format chaîne de caractères
Je suppose que c'est un problème avec mon format de date mais je ne vois pas comment le regler... alors si quelqu'un a une idée... un grand merci!!
-
Utilise le PreparedStatement et la méthode setDate
delete from adage.pegrade where COD_EJA=? and COD_GRADE=? and DAT_DGRADE= ? etc. etc.
OU
le format de dates JDBC {d 'yyyy-mm-dd'}. Le driver JDBC se charge de conversion.
Exemple :
delete from adage.pegrade where COD_EJA=4 and COD_GRADE='test' and DAT_DGRADE= {d '2005-07-06'}
-
Je ne peux pas utiliser ta première proposition car je dois pouvoir m'adapter à des dizaines de tables différentes,
dans le deuxième cas, comment faire si j'ai une date avec des heures, minutes secondes? Il n'en tient pas compte et m'annule quand meme ma ligne?
Merci
-
Avec le format timestamp cela doit marcher, même si c'est la date dans la base.
{ts 'yyyy-mm-dd hh:mm:ss'}
-