该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
本想写个函数,多参数的没写成,我了个我比较熟悉的存储过程,通过调用查看输出问题能解决。
--过程功能,输入初始日期、结束日期、初始日期对应的周,输出两个日期间的双休日数。
create or replace procedure tt_test(start_date in out date,
end_date in date,
week in out number) as
cnt number;
begin
cnt := 0;
loop
if start_date >= end_date then
exit;
end if;
if week = 6 then
cnt := cnt + 1;
end if;
start_date := start_date + 1;
if week = 7 then
week := 1;
else
week := week + 1;
end if;
end loop;
dbms_output.put_line(cnt);
dbms_output.put_line(start_date);
end;
declare
start_date date;
end_date date;
week number;
begin
start_date:=to_date('20160101','yyyymmdd'); --开始日期
end_date:=to_date('20160115','yyyymmdd'); --结束日期
week:=5; --开始日期对应的周期(周一到周七,列如:5代表周五)
tt_test(start_date,end_date,week);
end;