Я только что изучил plsql .. Я создал функцию, которая будет возвращать день, который не является рекурсивным выходным (он будет искать следующий день, который не является выходным) из заданного параметра "THEDAY", но он не работает.Интересно, почему это все-таки возвращающийся праздник?
FUNCTION WEEKDAY(THEDAY IN OUT DATE)
RETURN DATE
IS
count_row number;
nextday DATE;
isholiday boolean;
BEGIN
nextday := THEDAY;
isholiday := false;
IF (TO_CHAR(TO_DATE(THEDAY),'DY','nls_date_language=american')='SAT') THEN
nextday := THEDAY + 2;
isholiday := true;
ELSIF((TO_CHAR(TO_DATE(THEDAY),'DY','nls_date_language=american')='SUN') ) THEN
nextday := THEDAY +1;
isholiday := true;
ELSE
BEGIN
SELECT count(*)
INTO count_row
FROM TBL_MSTHOLIDAYS
WHERE trunc(DDAY) = trunc(THEDAY);
IF count_row <> 0 THEN
nextday := THEDAY+1;
isholiday := true;
END IF;
END;
END IF;
if (isholiday = true) THEN
RETURN WEEKDAY(nextday);
ELSE
RETURN THEDAY;
END IF;
END;