When registering data in the DATE type column using "java.sql.Date", the time may not be handled appropriately, depending on the version of the Oracle JDBC driver.

 
[Symptom]

When registering data in the DATE type column using "java.sql.Date", the time may not be handled appropriately, depending on the version of the Oracle JDBC driver.

[Cause]

The operation of setDate() has been changed from Oracle JDBC Driver 12.1.0.1. As a result, when setDate() is used, the time is now stored in the DATE type column.

  From Oracle JDBC Driver 12.1.0.1: The time defined in the variable of setDate() is stored.
  Up to Oracle JDBC Driver 11.2.0.4: The driver sets the time to "00:00:00".

[Problematic Cases]

When all of the following conditions are met, operation may be impacted by this symptom after upgrading the version.

* While using Oracle Database 11g or a previous version, the Oracle Database version is upgraded to 12c or later
* "-Doracle.jdbc.mapDateToTimestamp=false" is set in the system properties
* DATE type column is used by an independently developed program, such as a customization or added function

[Remedy]

Fix the independently developed program, such as a customization or added function, so that setting the time in the DATE type column will not cause any problems.

Or,

Set "-Doracle.jdbc.DateZeroTime=true" in the system properties.
In Oracle JDBC Driver 12.1.0.1 and 12.1.0.2, this property can be used by applying Patch 19297927.

For details, please check the Oracle Support site.

 --Target -------------------------------------------------------------------------
iAP/Accel Platform/All Updates
 --------------------------------------------------------------------------------


FAQID:1123
Was this article helpful?
0 out of 0 found this helpful
Powered by Zendesk