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 ....;