使用Oracle显式游标及for循环
来源:互联网 发布:淘宝卖家正在被处罚 编辑:程序博客网 时间:2024/05/16 07:35
使用隐式游标和显式游标:
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循环
- 使用Oracle显式游标及for循环
- 使用Oracle显式游标及for循环
- 使用Oracle显式游标及for循环
- 使用Oracle显式游标及for循环
- 使用Oracle显式游标及for循环
- Oracle 游标for循环
- Oracle游标for循环
- oracle游标:fetch和for循环游标
- Oracle存储过程中游标For循环使用
- Oracle笔记:循环及游标
- Oracle游标的使用方法以及使用for循环实现游标的原理
- oracle pl sql for循环游标
- oracle显示游标和游标for循环案例
- Oracle PL/SQL显示游标、隐式游标、游标循环
- Oracle使用游标循环调用存储过程
- oracle中使用游标实现多重循环
- 游标,动态,for循环
- 关于开发简易搜索引擎的一些总结和思考
- Android学习笔记之RadioButton的使用详解
- 动画效果监听事件
- 负载均衡--服务器单机集群以及session共享技术分享和交流
- 在Macbook上配置使用Android自动化测试工具uiautomator
- 使用Oracle显式游标及for循环
- OpenGL入门6——GLUT窗口
- SOJ--4389: 川大贴吧水王
- sql知识归纳
- 登陆框注入~我要中奖
- OpenStack 最小化安装配置(四):RabbitMQ服务配置
- Qt pro文件的规则
- Oracle 数据库配置
- 编程输出100~200之间的素数