Без учета праздников вы можете использовать день недели для выполнения простой математики по дате, используя функцию DECODE:
SELECT SYSDATE-DECODE(TO_CHAR(SYSDATE, 'D'), 2, 3, 1, 2, 1) AS WORK_DATE_BEFORE,
TO_CHAR(SYSDATE-DECODE(TO_CHAR(SYSDATE, 'D'), 2, 3, 1, 2, 1), 'DAY') AS WORK_DAY_BEFORE,
SYSDATE AS BASE_DATE,
TO_CHAR(SYSDATE, 'DAY') AS BASE_DAY,
SYSDATE+DECODE(TO_CHAR(SYSDATE, 'D'), 6, 3, 7, 2, 1) AS WORK_DATE_AFTER,
TO_CHAR(SYSDATE+DECODE(TO_CHAR(SYSDATE, 'D'), 6, 3, 7, 2, 1), 'DAY') AS WORK_DAY_AFTER
FROM DUAL
Просто замените SYSDATE переменной, содержащей дату для проверки. DECODE использует день недели, чтобы определить, сколько дней добавить или вычесть из базовой даты.