o
decode
resultado da função tem o tipo de dados do terceiro parâmetro. No primeiro caso, como nenhum tipo de dados é especificado para NULL
, o VARCHAR2 padrão é usado. No segundo caso, uma DATE é explicitamente solicitada e, portanto, o resultado é uma data. Em outras palavras, a primeira consulta é a mesma que:
SELECT DECODE(SYSDATE, SYSDATE + 1, to_char(NULL), to_char(SYSDATE)) FROM DUAL;
A saída desta consulta será formatada de acordo com seu
NLS_DATE_FORMAT
parâmetro de sessão, enquanto a segunda consulta retornará uma data que será exibida de acordo com as configurações do seu cliente.