Vous ne pouvez pas. C'est aussi simple que ça. Les jours fériés nationaux varient dans le monde entier, ils varient d'année en année et des jours supplémentaires peuvent être ajoutés ou supprimés à tout moment. De plus, certaines juridictions reportent les jours fériés nationaux qui tombent le week-end et les ont la semaine suivante; d'autres non.
Vous devrez créer une table de calendrier et marquer les jours fériés / week-ends nationaux, etc.
Par exemple
create table calender
( day date
, weekend varchar2(1)
, holiday varchar2(1)
);
Insérez-y ensuite des données...
insert into calender (day, weekend)
select trunc(sysdate + level)
, case when to_date(sysdate + level,'fmDAY') in ('SATURDAY','SUNDAY')
then 'Y' else 'N' end
from dual
connect by level <= 365
Enfin, mettez à jour manuellement ce que vous considérez comme un jour férié ici.
Vous pouvez ensuite sélectionner des jours ouvrables, en fonction de la façon dont vous l'avez rempli avec quelque chose comme ceci :
select count(*)
from calender
where day between :startdate and :enddate
and weekend = 'N'
and holiday = 'N'