OJDBC 14 неявное преобразование даты?

Мы используем ojdbc14_10.1.0.2.jar с приложением Java/J2EE (которое использует непосредственно JDBC) и JDK5, но когда мы попытались перейти на ojdbc5-11.2.0.3.jar, мы столкнулись с проблемой, связанной с некоторым запросом sql (jdbc) это больше не работает.

Псевдо-SQL-запрос:

select *
from quotas q 
where q.datdeb<='2013-09-05' and q.datfin>='2013-09-05' 
and q.datdeb is not null and q.datfin is not null order by ....;

Параметры NLS для даты: DD/MM/RR

Что несовместимо с форматом даты, указанным в качестве параметра в запросе.

Все работало нормально, когда мы использовали ojdbc14; по-видимому, это делает косвенное преобразование для даты.

Для информации, база данных Oracle - 11g Release 11.2.0.3.0 - 64bit

С наилучшими пожеланиями.

1 ответ

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

select *
from quotas q 
where q.datdeb<=to_date('2013-09-05','yyyy-mm-dd') and q.datfin>=to_date('2013-09-05', 'yyyy-mm-dd')
and q.datdeb is not null and q.datfin is not null order by ....;
Другие вопросы по тегам