Я пытаюсь получить предыдущий рабочий день в PL SQL.Я не уверен на 100%, правильно ли я пытаюсь это сделать.
По сути, у нас есть таблица выходных, и я пытаюсь зациклить введенную дату в таблице выходных, а затем вернуть предыдущий рабочий день.Я использую курсор для получения списка праздников, а затем использую цикл while
.У меня проблема в том, что код выполняется, но курсор возвращает только последнее значение в списке праздников.
Create or Replace Function GetPreviousWorkingDay
(
CurrentDate in Date
)
Return Date
As
PreviousWorkingDay Date;
Cursor dt_cursor is
Select holiday_date
from holiday_table;
HolidayDate date;
Begin
PreviousWorkingDay := CurrentDate;
Open dt_cursor;
Loop
Fetch dt_cursor into HolidayDate;
Exit When dt_cursor%NOTFOUND;
End Loop;
While PreviousWorkingDay = HolidayDate
Loop
PreviousWorkingDay := PreviousWorkingDay - 1;
Exit When PreviousWorkingDay <> HolidayDate;
End Loop;
Close dt_cursor;
Return previousworkingday;
END;
любая помощь будет оценена.Спасибо