le decode
le résultat de la fonction a le type de données du troisième paramètre. Dans le premier cas, puisqu'aucun type de données n'est spécifié pour NULL
, le VARCHAR2 par défaut est utilisé. Dans le second cas, une DATE est explicitement demandée et donc le résultat est une date.
En d'autres termes, la première requête est la même que :
SELECT DECODE(SYSDATE, SYSDATE + 1, to_char(NULL), to_char(SYSDATE)) FROM DUAL;
La sortie de cette requête sera formatée selon votre NLS_DATE_FORMAT
paramètre de session, tandis que la deuxième requête renverra une date qui sera affichée en fonction des paramètres de votre client.