Oracle游标的for与fetch
来源:互联网 发布:网站在线帮助文档源码 编辑:程序博客网 时间:2024/06/05 19:58
使用隐式游标和显式游标:
1.查询返回单行记录时→隐式游标;
2.查询返回多行记录并逐行进行处理时→显式游标
--显示游标属性
declare
CURSOR cur_emp IS SELECT * FROM emp;
row_emp cur_emp%ROWTYPE;
BEGIN
OPEN cur_emp;
FETCH cur_emp INTO row_emp;
WHILE cur_emp%FOUND
LOOP
dbms_output.put_line(row_emp.empno||'----'||row_emp.ename);
FETCH cur_emp INTO row_emp;
END LOOP;
close cur_emp;
END;
--使用显式游标修改数据(给所有的部门经理加薪1000)
DECLARE
CURSOR emp_cur IS
SELECT empno,ename,sal FROM emp WHERE job='MANAGER' FOR UPDATE;
emp_row emp_cur%ROWTYPE;
BEGIN
OPEN emp_cur;
LOOP
FETCH emp_cur INTO emp_row;
IF emp_cur%NOTFOUND THEN
EXIT;
ELSE
UPDATE emp SET sal=sal+1000 WHERE CURRENT OF emp_cur;
END IF;
END LOOP;
COMMIT;
CLOSE emp_cur;
END;
·注意:1、如果游标打开之前或关闭之后,使用游标属性,Oracle会抛出一个INVALID_CURSOR错误(ORA-01001);
--游标for循环(给所有的部门经理减薪1000)
DECLARE
CURSOR emp_cur IS
SELECT empno,ename,sal FROM emp WHERE job='MANAGER' FOR UPDATE;
BEGIN
FOR emp_row IN emp_cur
LOOP
UPDATE emp SET sal=sal-1000 WHERE CURRENT OF emp_cur;
END LOOP;
COMMIT;
END;
--我们可以看到游标FOR循环确实很好的简化了游标的开发,我们不在需要open、fetch和close语句,不在需要用%FOUND属性检测是否到最后一条记录,这一切Oracle隐式的帮我们完成了。
--给经理加薪5000,其他加薪1000
DECLARE
CURSOR emp_cur IS
SELECT * FROM emp FOR UPDATE;
BEGIN
- Oracle游标的for与fetch
- oracle游标:fetch和for循环游标
- oracle的游标用法,for循环游标和fetch into用法上有什么区别
- oracle pl sql fetch游标
- Oracle 游标for循环
- Oracle游标for循环
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据【转】
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据(转载)
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
- Oracle 中使用fetch bulk collect into 批量效率的读取游标数据
- Oracle 中使用fetch bulk collect into 批量效率的读取游标数据【mark还没看】
- 【多线程】(十一)读写锁SRWLock
- World Wind Java开发之三 显示状态栏信息
- 第十一周项目六(四):输出1000以内的所有回文素数
- Android TableLayout(表格布局) 使用介绍
- UML概述
- Oracle游标的for与fetch
- 第11周项目2.2 求四个数的最大公约数
- iOS Annotation
- 河南省第六届大学生程序设计竞赛--异形卵
- 2014-11-8Android学习------Android 实现图片的旋转--------动画Animation学习篇
- 在cubieboard2双卡版上从零构建Android4.2.2系统
- iperf 用法
- 优化输入输出后的计数排序
- Android版的Smack:aSmack