SELECT Sysdate AS System_date
FROM Dual
zwróci Ci system daty tzn. godzinę w postaci „RRRR-MM-DD GG:MM:SS” (ciąg) lub RRRRMMDDDHHMMSS (liczba).
Natomiast twoja funkcja wymagać będzie stringa jako ciągu znaków
The syntax for the NEXT_DAY function in Oracle/PLSQL is:
NEXT_DAY( date, weekday )
Parameters or Arguments
date
A date value used to find the next weekday.
Jeśli zajrzysz do dokumentacji wersji SQL NEXT_DAY, przekonasz się, że przekazywanie liczby reprezentującej dzień tygodnia jest nieudokumentowane. Działa z dowolnego powodu, ale jeśli polegasz na tym, że działa, podejmujesz ryzyko, że w przyszłości Oracle zmieni implementację, aby była zgodna ze specyfikacją tej funkcji. (Ryzyko jest niewielkie, ponieważ Oracle nie jest szalony.)
https://docs.oracle.com/database/121/SQLRF/functions118.htm#SQLRF00672
Implementacja PL/SQL działa tylko z udokumentowaną specyfikacją — nie akceptuje danych liczbowych reprezentujących dzień tygodnia.
Jeśli korzystasz z sysdate w taki sposób, dni tygodnia numerycznie zapisz
SELECT NEXT_DAY(SYSDATE, 1)
FROM DUAL;