Проблема не в компоненте времени модели формата, а в компоненте «ГГ», что означает, что в вашем году конвертируется в 2099, а не в 1999. Попробуйте это для иллюстрации:
SQL> SELECT to_char(to_date('01-Apr-99','DD-Mon-YY'),'DD-Mon-YYYY') thedate
FROM dual;
THEDATE
-----------
01-Apr-2099
SQL>
Используйте RR или YYYY в качестве компонента модели формата для года при использовании дат 20-го века.
Редактировать:
Вы делаете заявление «Даты в базе данных имеют формат« 01-Янв-11 ».»Это обычная, но неверная интерпретация дат в Oracle.Поля DATE всегда хранятся в одном и том же внутреннем формате .Все дело в том, как вы используете модель формата в функциях преобразования, которая определяет, как данные преобразуются во внутренний формат или из него.