Самик прав, просто используйте TO_DATE(RUN_DATE, 'YYYYMMDD')
Я хотел бы добавить несколько объяснений, почему ваша функция не так.Так что уберите его из самого внутреннего:
to_date(RUN_DATE)
Преобразует строку RUN_DATE в DATE
, пытаясь угадать формат, поскольку он не был задан.Давайте назовем результат этого как NewDate
и проанализируем далее:
TO_CHAR(NewDate,'mmddyyyy')
Теперь это преобразует NewDate
в строку в формате mmddyyyy
.Давайте назовем это как NewString_MMDDYYYY
и посмотрим, куда оно нас приведет.Это оставляет конечную функцию как:
TO_DATE(NewString_MMDDYYYY,'mm/dd/yyyy')
Обнаружили ошибку еще?Вы говорите Informatica преобразовать NewString_MMDDYYYY
в дату.И вы сообщаете функции, что она написана в формате mm/dd/yyyy
- который, очевидно, не используется, поскольку функции TO_CHAR было приказано сохранить ее в mmddyyyy
.
Итак, если ваш ввод RUN_DATE
в YYYYMMDD
формате, тогда все, что вам нужно сделать, это TO_DATE(RUN_DATE, 'YYYYMMDD')
.Если RUN_DATE
используется другое форматирование, просто замените второй аргумент соответствующим образом.