Oracle function里这样的for loop怎么实现?

extend 2015-11-06 08:57:29
要实现这样的一个Oracle Function:

1. 输入起止日期
2. 判断起止日期是否是某几个特定日期,是的话,计数加1.

觉着用for loop循环最合适,但是总是变异不过去,请高手帮忙看看怎么写,主要就是for循环段不行:

FOR holiday in (to_date('2015-10-03','YYYY-MM-DD'),to_date('2015-10-03','YYYY-MM-DD'),to_date('2015-10-03','YYYY-MM-DD'))
LOOP
if holiday<=end_date and holiday >=start_date then
m_hol := m_hol + 1;
end if;
end LOOP;
...全文
372 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2015-11-09
  • 打赏
  • 举报
回复
你这个要使用数组实现 ,给你一个简单的例子

SQL> declare
  2      type t_list is table of date index by pls_integer ;
  3      list t_list ;
  4  begin
  5      list(1) := to_date('2015-10-03','YYYY-MM-DD') ;
  6      list(2) := to_date('2015-10-04','YYYY-MM-DD') ;
  7      list(3) := to_date('2015-10-05','YYYY-MM-DD') ;
  8      for i in 1.. list.count
  9      loop
 10          dbms_output.put_line(list(i)) ;
 11      end loop ;
 12  end ;
 13  /
03-10月-15
04-10月-15
05-10月-15
PL/SQL procedure successfully completed

SQL> 

小灰狼W 2015-11-09
  • 打赏
  • 举报
回复
for in后面不能这么使用枚举 可以放在数组,或是 select .. union..语句里来遍历
extend 2015-11-06
  • 打赏
  • 举报
回复
“但是总是变异不过去” 是“编译”不过去

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧