Результат функции decode
имеет тип данных третьего параметра.В первом случае, поскольку для NULL
тип данных не указан, используется VARCHAR2 по умолчанию.Во втором случае явно запрашивается ДАТА, и поэтому результатом является дата.
Другими словами, первый запрос такой же, как:
SELECT DECODE(SYSDATE, SYSDATE + 1, to_char(NULL), to_char(SYSDATE)) FROM DUAL;
Вывод этогозапрос будет отформатирован в соответствии с параметром сеанса NLS_DATE_FORMAT
, а второй запрос вернет дату, которая будет отображаться в соответствии с настройками клиента.