Если EDTA_DATA
равно date
(тип данных), не сравнивайте его со строкой, так как '19.10.01'
является строкой. Oracle неявно попытается преобразовать его в соответствующую дату, но это не всегда должно работать. Кроме 19.10.01 может быть что угодно (2019 окт 01, или 19 окт 2001, или ...), зависит от настроек NLS.
Взять под контроль;Посмотрите, помогает ли использование литерала даты (он всегда имеет формат yyyy-mm-dd
):
where edta_data = date '2019-10-01'
Кроме того, если edta_data
содержит компонент времени (часы, минуты, секунды), тогда самый простой вариант - обрезать егоНапример,
where trunc(edta_data) = date '2019-10-01'
, но это не позволит Oracle использовать индекс для этого столбца (если он существует). Это можно исправить, нет проблем;но - сначала посмотрим, поможет ли что-либо из перечисленного выше.