Я вижу одну вещь, которая беспокоит меня вашим кодом - abc
- это имя таблицы и курсора ... это плохая практика ИМХО.
Что касается проблемы формата даты, попробуйте
dbms_output.put_line('date is '||TO_CHAR ( v_date, 'DD/MM/YYYY HH24:MI:SS') );
Вывод, который вы видите, скорее всего, является результатом некоторой настройки NLS на уровне дБ / сеанса в отношении формата даты, который используется при преобразовании DATE
в VARCHAR2
.Мой код использует явный формат даты для работы независимо от этого параметра (который НЕ идеален, поскольку это может сделать его проблематичным в ситуациях, когда необходима локализация / глобализация!).