Была ли нарушена обработка перехода на летнее время в драйвере Oracle JDBC версии 11.2.0.2.0?

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

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


person Olaf    schedule 14.07.2011    source источник


Ответы (2)


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

EDIT 25/09/2013: На момент написания (более 2 лет назад) исправление для драйвера Oracle JDBC 11.2.0.2.0 было доступно платным клиентам Oracle. Я лично не проверял, но считаю, что проблема решена в текущей версии драйвера Oracle JDBC 11.2.0.4, которую можно бесплатно загрузить с Oracle.

person Olaf    schedule 15.07.2011
comment
Если вы решите свою собственную проблему, подумайте о том, чтобы добавить решение (и номер исправления), а не просто заявить, что проблема решена — таким образом другие могут извлечь пользу из того, что вы обнаружили. - person Dave Smylie; 23.09.2013
comment
@Dave Smylie: извините, мой ответ был недостаточно ясен. На момент написания (более 2 лет назад) платным пользователям Orcale был доступен патч для драйвера Oracle JDBC 11.2.0.2.0. Я лично не проверял, но считаю, что проблема решена в текущей версии драйвера Oracle JDBC 11.2.0.4, которую можно бесплатно загрузить с Oracle. Не принимайте близко к сердцу! - person Olaf; 23.09.2013
comment
Прохладный. Спасибо за обновление/информацию. Иначе очень обидно. Я бы удалил свой отрицательный голос, но сейчас я не могу, если ваш ответ не будет отредактирован. - person Dave Smylie; 25.09.2013
comment
@DaveSmylie: я добавил уточнение к самому ответу. Спасибо! - person Olaf; 25.09.2013

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

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

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

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

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

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

Сравнение дат Oracle не работает из-за перехода на летнее время

person Casey Johnson    schedule 12.03.2014