Retorna datas de um intervalo de dias
SQL:
select x.data,
initcap(to_char(x.data,'DAY')) dia_semana,
case when to_char(x.data, 'd') in (1,7) then 'Fim de semana' else 'Dia útil' end legenda
from (select data_inicial + level - 1 data
from (select to_date('12/07/2019', 'DD/MM/YYYY') data_inicial from dual)
connect by level <= sysdate - data_inicial + 1) x
order by x.data
Retorno:
| DATA | DIA_SEMANA | LEGENDA |
--------------------------------------------
| 12/07/2019 | Sexta-Feira | Dia útil |
| 13/07/2019 | Sábado | Fim de semana |
| 14/07/2019 | Domingo | Fim de semana |
| 15/07/2019 | Segunda-Feira | Dia útil |
| 16/07/2019 | Terça-Feira | Dia útil |
| 17/07/2019 | Quarta-Feira | Dia útil |