ojdbc14.jar по сравнению с ojdbc6.jar

Я заметил следующее различие, но не видел, что оно зарегистрировало где угодно. Я задаюсь вопросом, заметили ли другие то же самое или могут указать на меня на некоторую документацию, который доказывает то же.

ENV:-

Oracle 11g, JDK 1.6, iBatis, PL/SQL

Сценарий:-

ojdbc14.jar: если pl/sql возвращает переменную типа DATE и я пытаюсь поместить это в java.sql. Переменная даты затем все хорошо работает. Пример:

Date annualDate = (Date) map.get("exam_date");

ojdbc6.jar: если pl/sql возвращает переменную типа DATE и я пытаюсь поместить это в java.sql. Переменная даты затем я получаю исключение:

java.lang.ClassCastException: java.sql.Timestamp cannot be cast to java.sql.Date
32
задан Omnipresent 9 July 2010 в 03:39
поделиться

2 ответа

На самом деле ojdbc14.jar ничего не говорит о реальной версии драйвера (см. Загрузки драйвера JDBC ), за исключением того, что он предшествует Oracle 11g. В такой ситуации вам следует указать точную версию.

В любом случае, я думаю, вы найдете объяснение в Что происходит с DATE и TIMESTAMP? Короче говоря, они изменили поведение в драйверах 9.2, а затем снова в драйверах 11.1.

Это может объяснить различия, с которыми вы сталкиваетесь (и я предлагаю использовать самую последнюю версию, то есть драйверы 11.2).

26
ответ дан 27 November 2019 в 20:14
поделиться

"14" и "6" в названиях этих драйверов относятся к JVM, для которой они были написаны. Если вы все еще используете JDK 1.4, я бы сказал, что у вас серьезная проблема и вам нужно обновиться. Срок службы JDK 1.4 давно истек. В ней даже не было дженериков! JDK 6 u21 - это текущий стандарт производства от Oracle/Sun. Я бы рекомендовал перейти на него, если вы еще не перешли.

40
ответ дан 27 November 2019 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: