il decode
risultato della funzione ha il tipo di dati del terzo parametro. Nel primo caso, poiché nessun tipo di dati è specificato per NULL
, viene utilizzato il valore predefinito VARCHAR2. Nel secondo caso viene richiesta esplicitamente una DATA e quindi il risultato è una data.
In altre parole, la prima query è la stessa di:
SELECT DECODE(SYSDATE, SYSDATE + 1, to_char(NULL), to_char(SYSDATE)) FROM DUAL;
L'output di questa query verrà formattato secondo il tuo NLS_DATE_FORMAT
parametro di sessione, mentre la seconda query restituirà una data che verrà visualizzata in base alle impostazioni del client.