Я просто заметил любопытное поведение оракула TO_DATE при использовании с format_mask.
В основном, я вижу, что в одном случае он игнорирует данную маску формата и анализирует ввод своей собственной маской, а в других случаях генерирует исключение.
Пример I ожидаемое поведение - ошибка брошена:
SELECT TO_DATE('18-02-2016', 'DD/MON/YYYY') FROM dual
ORA-01843: недействительный месяц
Пример II неожиданное поведение - дата проанализирована:
SELECT TO_DATE('18-feb-2016', 'DD/MM/YYYY') FROM dual
18 февраля 2016 00:00:00
Я не вижу никаких замечаний этого в документах, поэтому мне интересно, является ли это непоследовательность по дизайну или это ошибка, или, может быть, я не понимаю что-то правильное?
Edit: Глядя на ответы, я могу согласиться, что это, скорее всего, по дизайну. Но то, что делается здесь, выглядит опасно "автоматическим" для меня.
Что делать, если формат будет интерпретироваться (догадаться оракулом) неправильно? Есть ли какая-либо документация о том, что здесь происходит, поэтому я могу быть уверен, что это безопасно?
Мой вопрос будет тогда - я могу отключить его? Является ли мой единственный вариант проверки формата самостоятельно?