Compadre yo hice una funcion hace mucho que hace eso
se la agrego:
CREATE OR REPLACE FUNCTION FCW_FDS
(FECHAINICIO IN Date,FECHAFIN IN DATE
)
RETURN NUMBER
IS
BEGIN
BEGIN
DECLARE
cod Nvarchar2(10);
t NUMBER;
diasfds number;
BEGIN
diasfds:=0;
t:=(FECHAFIN-FECHAINICIO);
for p in 0..t loop
cod:=to_char(fechainicio+p,'Day');
if(upper(trim(cod)) like 'S%') or (cod like 'D%')then
diasfds:=diasfds+1;
end if;
end loop;
RETURN(diasfds);
EXCEPTION
WHEN OTHERS THEN
RETURN(-1);
END;
END;
END FCW_FDS;