У меня несколько сложный SQL-запрос, извлекаемый из таблицы счетов.Запрашиваемая таблица использует три числовых поля для создания даты (одно для дня, месяца и года).
В этом запросе используется комбинация вызовов функций concat внутри функции TO_DATE.В части запроса SELECT нет проблем, но когда я использую идентичный оператор в предложении WHERE, я получаю «ORA-01858: не числовой символ был найден там, где ожидалось число», который относится к первомуиспользование concat внутри TO_DATE в предложении WHERE.
Итак, чем отличается использование concat и TO_DATE в предложении where?
Например, эта следующая часть WHERE вызывает неошибка в числовом символе
to_date(
concat(invoice_year,
concat('-',
concat(invoice_month,
concat('-',invoice_day)))),'YYYY-MM-DD')
> add_months(sysdate,-6)
, но этот оператор в выборе оценивается просто отлично
to_date(
concat(invoice_year,
concat('-',
concat(invoice_month,
concat('-',invoice_day)))),'YYYY-MM-DD') as invoice_date