SELECT dt, To_Char(dt,'Day') Days
FROM (
SELECT TO_DATE('&start_date', 'DD-MON-YYYY') + LEVEL - 1 AS dt
FROM dual
CONNECT BY LEVEL <= TO_DATE('&end_date', 'DD-MON-YYYY')
- TO_DATE('&start_date', 'DD-MON-YYYY') + 1
)
WHERE TO_CHAR(dt, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') IN ('SAT', 'SUN')
ORDER BY dt;