decode
funkcja wynik ma typ danych trzeciego parametru. W pierwszym przypadku, ponieważ nie określono typu danych dla NULL
, używany jest domyślny VARCHAR2. W drugim przypadku DATE jest wyraźnie poproszona i dlatego wynikiem jest data.
Innymi słowy, pierwsze zapytanie jest takie samo jak:
SELECT DECODE(SYSDATE, SYSDATE + 1, to_char(NULL), to_char(SYSDATE)) FROM DUAL;
Dane wyjściowe tego zapytania zostaną sformatowane zgodnie z Twoim NLS_DATE_FORMAT
parametr sesji, podczas gdy drugie zapytanie zwróci datę, która będzie wyświetlana zgodnie z ustawieniami klienta.