【发布时间】:2015-11-13 03:46:37
【问题描述】:
我需要获取前第 n 个营业日期
BEGIN
SELECT holiday_ind
INTO v_holiday_ind
FROM holiday_calendar
AND bus_date = L_bus_dt;
EXCEPTION
WHEN OTHERS THEN
V_holiday_ind=’N’
END;
现在用户将输入一个日期和一个整数,比如 n
我必须从输入日期中减去 n 个工作日并给出输出
例如,如果用户输入 May 26 2015 和 2 ,则输出应为 May 20 2015,因为 2015 年 5 月 25 日是阵亡将士纪念日,2015 年 5 月 23 日是星期六,2015 年 5 月 24 日是太阳
我试过了
FOR i IN 1..n
LOOP
BEGIN
SELECT holiday_ind
INTO v_holiday_ind
FROM holiday_calendar
AND bus_date = L_bus_dt;
EXCEPTION
WHEN OTHERS THEN
V_holiday_ind=’N’
END;
L_bus_date := L_bus_date - n;
END LOOP;
但不工作
请帮忙
【问题讨论】:
-
holiday_calendar表的内容是什么:有没有营业日期列表之类的? -
如果您发布 table.sample 数据和预期结果的详细信息会有所帮助
-
假期表以输入参数为日期,输出是否为假期
-
示例用户将输入当前工作日和一个参数说 2 那么我的输出应该少 2 个工作日例如如果用户输入 select holiday_func(sysdate,2) from dual the holiday_func 应该输出当 sysdate='27-nov-2015' 时,如 2015 年 11 月 24 日。这里 2015 年 11 月 26 日是假期。在另一个示例中,当 sysdate='08-sep-2015' 时,该函数应返回 '03-sep-2015'。这里 07-sep-2015' 是假期