Ответ 1
см. матрицу совместимости в http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#02_02
Также учтите, что тип данных timestamp доступен только с Oracle 10.
Почему, черт возьми, Oracle предлагает другую (!) версию драйвера JDBC, например. ojdbc14.jar, для каждой (!) версии базы данных?
Все файлы имеют разные размеры и, возможно, различный контент.
фон:
Мы получаем случайную и, казалось бы, непоправимую ошибку, говорящую "недопустимое число" при сохранении данных (мы предполагаем, что это временная метка). Но это не какое-то конкретное утверждение. Большую часть времени он экономит все хорошо. Только раз в месяц безвредный вид заявления не срабатывает.
Итак, я поближе посмотрел на сайт загрузки Oracle и заметил, что ни один из файлов не совпадает с файлами, использующими одно и то же имя.
Наш продукт запускается в базах данных, поддерживаемых нашими клиентами, т.е. какая версия и патч у клиентов работает, что это такое.
Итак, какой драйвер мы используем? Последний (Oracle 11g) - несмотря на то, что он обычно 9i и 10g баз данных?
Почему бы просто не связать все версии с одним и тем же файлом "один драйвер для всех"? Или существуют небольшие различия, ведущие к таким эффектам, как наши случайные ошибки?
EDIT: я ошибался в отношении баз данных 9i.
см. матрицу совместимости в http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#02_02
Также учтите, что тип данных timestamp доступен только с Oracle 10.
Когда мы обновили нашу базу данных Oracle с 8.1.7 до 10.2.0, я смог использовать тот же драйвер Oracle jdbc (ojdbc14.jar). Поэтому их драйвер jdbc поддерживает несколько версий одновременно. Конечно, возможно, что некоторые из драйверов ошибочны, но план состоит в том, чтобы поддерживать больше версий одновременно.
У меня есть аналогичная проблема здесь https://stackoverflow.com/users/1017344/user1017344
Похоже, что некорректная операция внутри самого драйвера JDBC