刚接触oracle,问个存储过程中loop用法的问题
时间:2007-10-25
来源:互联网
for in
loop
....
end loop
这样用的,但我还看到
BEGIN
v_Startdate:=trunc(p_StartDate);
v_EndDate:=trunc(p_EndDate+1);
v_Hour := 0;
--清空指定时间段内的数据
delete from csuseraccessnumdaystat where
statdate>=v_StartDate and statdate<v_EndDate;
COMMIT;
v_EndDate:=trunc(p_StartDate+1);
LOOP
IF v_EndDate>p_Enddate+1 THEN
EXIT;
END IF;
LOOP
IF v_Hour>23 THEN
v_Hour :=0;
EXIT;
........
END LOOP
END LOOP
我想问一下,上边的这种用法,loop起什么作用
作者: xujiangpan 发布时间: 2007-10-25
end loop
就是做循环,如果没有EXIT,就会一直做循环
作者: hebo2005 发布时间: 2007-10-25
IF v_Hour >23 THEN
v_Hour :=0;
EXIT;
........
END LOOP
循环,如果v_Hour >23 则v_Hour :=0;并EXIT;退出
作者: rockywu 发布时间: 2007-10-25
LOOP
IF v_EndDate >p_Enddate+1 THEN
EXIT;
END IF;
LOOP
IF v_Hour >23 THEN
v_Hour :=0;
EXIT;
........
END LOOP
END LOOP
不过你这个中间好像没什么东西可循环的。。。那里抄来的
作者: zkaini 发布时间: 2007-10-25
v_Startdate:=trunc(p_StartDate);
v_EndDate:=trunc(p_EndDate+1);
v_Hour := 0;
执行到这里是为变量赋值。。。
--清空指定时间段内的数据
delete from csuseraccessnumdaystat where
statdate >=v_StartDate and statdate <v_EndDate;
COMMIT;
执行到这里删除了v_StartDate和v_EndDate之间的数据,并提交了事务
v_EndDate:=trunc(p_StartDate+1);
LOOP
IF v_EndDate >p_Enddate+1 THEN
EXIT;
END IF;
LOOP
IF v_Hour >23 THEN
v_Hour :=0;
EXIT;
........
END LOOP
END LOOP
不知道代码是不是没有贴完还是怎么的,这2个循环没什么用,感觉在提交事务那里,工作已做完了。。。
有错误,欢迎大家来讨论。。。
作者: sanmmu 发布时间: 2007-10-25
作者: theokobe 发布时间: 2008-11-10
if 判断(如果为true则 exit)
exit
end if (如果为false 则从新判断)
end Loop (如果碰到了exit 就结束循环,没有没有的话就继续循环)
我是一个初学者(Oracle) 我看了上面各位大侠的评论总结出来的,希望有什么不对的地方可以给我指出来!谢谢了!
作者: zhoudianzhang 发布时间: 2011-11-15
作者: cosio 发布时间: 2011-11-15
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28