Была ли нарушена обработка летнего времени в драйвере Oracle JDBC версии 11.2.0.2.0? - PullRequest
3 голосов
/ 14 июля 2011

Я неожиданно заметил, что драйвер Oracle JDBC, который я использовал с Oracle 11g R2, думал, что летнее время в США началось после 2:59:59 13 марта этого года.На самом деле, это началось после 1:59:59 утра.Я провел дополнительное тестирование и заметил, что некорректное поведение этого драйвера не зависит от того, взаимодействует ли он с Oracle 11g R2 или Oracle 10g.Кроме того, все доступные предыдущие версии этого драйвера корректно изменяют переход на летнее время.

Это известная ошибка?Есть ли исправление для этого?

Ответы [ 2 ]

4 голосов
/ 15 июля 2011

Наш администратор БД провел исследование и обнаружил, что это известная ошибка, и для нее доступно исправление.Спасибо всем, кто захотел разобраться в этом и разгрести ваш мозг за ответы!

РЕДАКТИРОВАТЬ 25.09.2013: На момент написания (более 2 лет назад) патча для OracleДрайвер JDBC 11.2.0.2.0 был доступен для платных клиентов Oracle.Я не проверял лично, но я полагаю, что проблема решена в текущей версии драйвера Oracle JDBC 11.2.0.4, который доступен для Oracle для бесплатной загрузки.

0 голосов
/ 12 марта 2014

Да, я согласен, что это драйвер.Если ваш столбец имеет тип TIMESTAMP, то Oracle разрешит вставку этих недопустимых дат в БД, тогда определенные запросы будут выдавать

Ошибка запроса базы данных.Причина: java.sql.SQLException: ORA-01878: указанное поле не найдено в datetime или интервале

Ошибка может включать defaultParameterMap

Ошибка возникла при установке параметров

Причина: java.sql.SQLException: ORA-01878: указанное поле не найдено в datetime или интервале

до тех пор, пока «плохие» записи не будут обновлены в БД.Этот поток переполнения стека, который был обновлен вчера, имеет полную информацию.См. Ответ Криса Уильямса

Сравнение дат Oracle не выполнено из-за DST

...