存储过程DIY2----游标与循环
来源:互联网 发布:js获取当前div的id 编辑:程序博客网 时间:2024/04/30 21:32
游标参与循环的三种情况:
(1)declare cursor-->open cursor-->loop--->fetch curosr into -->end loop-->close cursor
这种情况每次调用fetch后游标将移动到下一条记录,但是我们要自己构造循环
declare
v_name tdz.vxm%TYPE;--%TYPE可以直接用取出字段的类型
v_class tdz.vbj%TYPE;
v_classes tdz.vbj%TYPE;
cursor mycoursor IS
SELECT vxm.vbj FROM tdz WHERE vbj=v_classes;
BEGIN
v_classes:='tang';
---------------------------
open mycoursor;
------------------------
loop
fetch mycursor into v_name,v_class
exit when mycursor%NOTFOUND;
end loop;
---------------------------------
close mycursor;
--------------------------------
end;
(2)CURSOR FOR Loop
FOR employee_rec in c1 ---employee_rec直接用,不用提前定义
LOOP
total_val := total_val + employee_rec.monthly_income;
END LOOP;
当使用CURSOR FOR Loop时,不用我手工open cursor close cursor,
(3)将dulk collect 批处理加入cursor,fetch语句一次只从结果集中提取出一行,而每次fetch后游标才会
指向结果集的下一行。
//先要定义表,因为游标批处理将返回多条记录,我们把 它存在表中,标的类型与字段的类型一样。
TYPE Tab_sal IS TABLE OF emp.salary&%TYPE;
TYPE Tab_id IS TABLE OF emp.id%TYPE; //emp.id(表名.字段名)
TYPE Tab_name IS TABLE OF emp.name%TYPE;
eid Tab_id ; / /定义好了表后就可以用它来定义变量来存储有标中的相应字段
ename Tab_name;
sales Tab_sal;
cursor my_curl is
select emp_id,emp_name,salary from emp where ROWNUM<=3;(ROWNUM为伪列,表示当前行)
BEGIN
-----------------------------------------------------------------------------
OPEN my_curl;
FETCH my_curl BULK COLLECT INTO eid,ename,sal;
----------------------------------------------------------------------------------
for i IN 1..eid.COUNT loop --i可以直接用
DBMS_OUTPUT.PUT_LINE(ename(i));--用了批处理后,可以像用数组一样
end loop;
---------------------------------------------------------------
close my_curl;
------------------------------------------------------
end;
(可能不设ROWCOUNT之前my_curl将返回更多的纪录,但是可以用ROWCOUNT来限制)
另外,还可以用LIMIT在FETCH语句中限制。
FETCH my_curl BULK COLLECT INTO eid,ename,sal limit 3 (也可以限制在游标记录中只取一定数量的记录数)
- 存储过程DIY2----游标与循环
- 存储过程 游标嵌套循环
- mysql 存储过程 游标 循环
- 游标与存储过程
- 存储过程与游标
- sql存储过程 游标 循环表 guoyz_1
- sql存储过程【游标-循环表】
- 存储过程,游标,循环,临时表
- sql存储过程【游标-循环表】
- sqlserver 存储过程中游标嵌套循环
- Mysql存储过程游标加循环
- Oracle使用游标循环调用存储过程
- mysql存储过程 游标 循环使用介绍
- mysql存储过程 游标 循环使用介绍
- oracle存储过程里嵌套游标循环
- mysql存储过程 游标 查询结果循环
- Mysql存储过程游标加循环
- sql 存储过程 游标执行循环数据
- Synchronized含义
- 晚睡一族美颜妙方
- 实现缩略图
- together designer/developer 2005, for vs.net出来了。
- 16个经典面试问题回答思路
- 存储过程DIY2----游标与循环
- 酷站大全
- 怎么使用Skin Look And Feel(1)
- 实用查询
- MD5算法之C#程序
- Web服务架构及其规范入门
- Java 2源码解读1:java.util.ArrayList
- 安装测试指南
- 用户手册(GB8567——88)