Du kan inte. Så enkelt är det. Nationella helgdagar varierar över hela världen, de varierar från år till år och extra helgdagar kan läggas till eller tas bort när som helst. Vissa jurisdiktioner överför dessutom nationella helgdagar som infaller på helgen och har dem nästa vecka; andra gör det inte.
Du måste skapa en kalendertabell och flagga nationella helgdagar/helger etc i detta.
Till exempel
create table calender
( day date
, weekend varchar2(1)
, holiday varchar2(1)
);
Infoga sedan lite data i den...
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
Slutligen, uppdatera manuellt vad du räknar som en nationell helgdag där inne.
Du kan sedan välja arbetsdagar, beroende på hur du fyllde den med något i stil med detta:
select count(*)
from calender
where day between :startdate and :enddate
and weekend = 'N'
and holiday = 'N'