У меня есть инструкция insert, где одно из вставленных полей - дата. Я использую to_date
функцию, чтобы преобразовать строку в дату таким образом:Oracle to_date format issue
to_date('10-MAY-10', 'DD-MON-RR')
Он отлично работает, но я обнаружил, что она позволяет также варианты, как:
to_date('10?MAY?10', 'DD-MON-RR')
to_date('10+MAY+10', 'DD-MON-RR')
Я ожидаю, что ошибка Oracle, однако он делает вставку. Не могли бы вы объяснить, почему или дать ссылку на соответствующую документацию?
http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34924 – Rene
Вы не должны использовать 'TO_DATE' с названиями месяцев без указания (например, 'to_date ('10 -MAY-10 ',' DD-MON-RR ',' NLS_DATE_LANGUAGE = AMERICAN''). В противном случае вы зависите от настроек сеанса, которые могут быть установлены на другом языке, где« MAY »не имеет смысл. Почему вы не используете простой литерал даты (например, 'date'2010-05-10'')? –
В моем приложении я использую дату так, как вы сказали« 2015-05-10 ». Я просто хочу знать, почему Oracle не отклоняет такие значения, как «2015? 05? 10», и можно ограничивать ограничители только «-». – mvb13