Но если какое-либо из значений НИКОГДА хранится в неправильном формате, ваш запрос может потерпеть крах, даже если это неправильное значение не является логически частью результатов (поскольку Oracle может оценивать вещи не по порядку). Чтобы быть действительно безопасным, вам нужно создать небольшую функцию PL / SQL, которая перехватывает исключения преобразования.
create or replace function safe_to_date(bad_data_type in varchar2) return date is
begin
return to_date(bad_data_type, 'DD-MON-YYYY');
--What happens if the format is wrong? This just ignores it.
exception when others then return null;
end;
/
Тогда вам нужно всегда использовать эту функцию вместо to_date:
select safe_TO_DATE(fakedatecolumn,'DD-MON-YY')
from table
ORDER BY safe_TO_DATE(fakedatecolumn,'DD-MON-YY');
Это отстой, но это цена, которую вы платите за неправильное хранение ваших данных.