не можеш. Това е толкова просто. Националните празници варират в целия свят, варират от година на година и допълнителни могат да се добавят или премахват по всяко време. Освен това някои юрисдикции пренасят национални празници, които падат през уикенда, и ги имат следващата седмица; други не го правят.
Ще трябва да създадете таблица с календари и да маркирате национални празници/почивни дни и т.н. в това.
Например
create table calender
( day date
, weekend varchar2(1)
, holiday varchar2(1)
);
След това вмъкнете някои данни в него...
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
И накрая, актуализирайте ръчно това, което смятате за национален празник там.
След това можете да изберете работни дни, в зависимост от това как сте го попълнили с нещо подобно:
select count(*)
from calender
where day between :startdate and :enddate
and weekend = 'N'
and holiday = 'N'