Вы не используете to_date
правильно.Эта функция Oracle ожидает второй аргумент, который определяет формат заданной входной строки.
to_Date('24-DEC-2017')
Должен быть записан как:
to_Date('24-DEC-2017', 'dd-mmm-yyyy')
Или:
to_Date('24-DEC-2017', 'dd-mon-yyyy', 'nls_date_language = american')
То же самое относится и к столбцу T34, который, как вы сказали, является VARCHAR2.Вам необходимо указать, в каком формате строки даты хранятся в этом столбце.Предполагая, что это тот же формат, что и '24-DEC-2017'
, вы хотите:
to_Date('24-DEC-2017', 'dd-mmm-yyyy') > to_date(T.COL34, 'dd-mmm-yyyy')
Подробнее см. Модели формата даты и времени Oracle .
PS: обратите вниманиечто хранение дат в столбце VARCHAR является плохой практикой и его следует избегать (подвержено ошибкам, неэффективно, ...).Oracle предоставляет тип данных DATE, который предназначен для этого варианта использования (наряду с различными другими связанными типами данных даты).