Oracle
 sql >> Base de données >  >> RDS >> Oracle

@Temporal(TemporalType.DATE) avec Oracle 12

Nous avons contacté le support Oracle et ils ont répondu comme suit (malheureusement, je ne suis pas en mesure de fournir un lien vers la réponse car un compte de support Oracle est nécessaire) :

Le nouveau comportement fonctionne comme prévu :

Les solutions de contournement ont fonctionné pour moi :

Solution n° 1 : Modifier l'application pour ne pas insérer le composant de temps (par exemple avec un UtilMethod statique)

public static Date truncateTime(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); }

Solution n° 2 : Téléchargez et appliquez le correctif 19297927 à partir de MOS :(My Oracle Support)

  1. Cliquez sur l'onglet Correctifs et mises à jour.
  2. Entrez le numéro de patch ci-dessus et cliquez sur Rechercher.
  3. Cliquez sur le numéro de patch correspondant à votre plateforme dans la liste
  4. Cliquez sur le bouton Télécharger pour télécharger le correctif.
  5. Lisez toutes les notes applicables avant de télécharger, puis cliquez sur le bouton Télécharger.

Après le patch, remplacez ojdb7.jar dans %Oracle_Home%\oracle_common\modules\oracle.jdbc_12.1.0 et ajoutez -Doracle.jdbc.DateZeroTime=true à vos arguments JVM