oracle光标的使用
以下plsql程序用的scott用户的dept,emp表。
1.光标的使用:
--查询并打印员工的姓名名和薪水
/*
光标属性:
%found %notfound */ set serveroutput on; declare CURSOR C1 IS SELECT ENAME,SAL FROM EMP;
PENAME EMP.ENAME%TYPE;
PSAL EMP.SAL%TYPE; BEGIN --打开光标
OPEN C1; LOOP --取一条记录,
FETCH C1 INTO PENAME,PSAL ;
EXIT WHEN C1%notfound;
--1.循环什么时候退出 2.FETCH一定能取到数据吗
DBMS_OUTPUT.PUT_LINE(PENAME||'的薪水是'||PSAL);
END LOOP; --关闭光标
CLOSE C1; END;
/
2.给员工涨工资
--给员工涨工资, 总裁涨1000 ,经理涨800 ,其他 400 set serveroutput on; declare cursor cemp is select empno,job from emp;
pempno emp.empno%type;
pjob emp.job%type; begin open cemp;
loop fetch cemp into pempno,pjob ;
exit when cemp%notfound; IF pjob = 'PRESIDENT' then update emp set sal= sal + 1000 where empno = pempno;
ELSIF pjob = 'MANAGER' then update emp set sal=sal+800 where empno = pempno;
ELSE update emp set sal=sal + 400 where empno = pempno;
END IF; end loop; close cemp; commit;
--对应oracle ,默认的事务隔离级别是 read committed
--事务的ACID :原子性 一致性 隔离性 持久性
SYS.DBMS_OUTPUT.PUT_LINE('涨工资完成'); end; /
3.操作带参数的光标
--查询某个部门中员工的姓名 set serveroutput on; declare cursor cemp(dno number) is select ename from emp where deptno = dno;
pename emp.ename%type; begin
open cemp(10);
dbms_output.put_line('10号部门的人有:');
loop fetch cemp into pename;
exit when cemp%notfound;
dbms_output.put_line(pename); end loop; close cemp; end; /
知识点出处: http://www.imooc.com/learn/360
oracle光标的使用的更多相关文章
- Oracle-PL/SQL语句
1.PL/SQL 2.存储过程,函数 3.java中调用存储过程和函数 4.触发器 1 PL/SQL 1.1什么是PL/SQL? n PL:Process Language n PL/SQL是or ...
- 编程开发之--Oracle数据库--存储过程在out参数中使用光标(3)
在本系列学习随笔中的第2节我们留下了2个问题,我们现在讨论在out参数中使用光标. 1.要在out参数中使用光标,我们需要申明一个包的结构,包的结构分为包头和包体,包头只负责申明,包体只负责实现.包头 ...
- Oracle游标(光标)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFuZ2xpdXFpbmc=/font/5a6L5L2T/fontsize/400/fill/I0J ...
- Oracle 学习----游标(使用带参光标cursor)
--表参照无参光标页信息 --注意:红色就是参数 declare cursor tt(pkeycode temp.keycode%type) is select name,sal from temp ...
- Oracle 学习----游标(使用无参光标cursor)
表: ----游标----------------------------- declare cursor tt is select name,sal from temp; vname temp.na ...
- oracle常用的快捷键
最近在开发过程中,遇到一些麻烦,就是开发效率问题,有时候其他同事使用PLSQL 编程效率明显高于自己,观察了好久,才发现他使用PLSQL 已经很长时间了而且,他自己也在其中添加了好多快捷方式, 1.登 ...
- Oracle安装注意点与工具使用简说
oracle数据库安装 注意点:orcl,安装过程中指定sys,system等相关账户密码 scott账户下有常用的四张表,可用system或sys作为sysdba进去, 可alter user sc ...
- LoadRunner ---参数化数据源(oracle,mssql,excel)
TXT文本,EXCEL表格以及数据库中的表都可以作为参数的数据集载体,LR都是支持的. 特别提醒:1.在形成数据池之后,数据库中的数据变化不会影响数据池中的数据.2.数据文件一定要以一个空行结束,否则 ...
- [转]Oracle Form 触发器执行顺序
Trigger 不是数据库中的触发器,不过功能类似,都是当某个事件发生的时候会触发. Trigger中可以编写代码,当对应事件发生的时候就会执行该Trigger中的代码. Oracle Form中的T ...
随机推荐
- I2C通讯协议
1.基本概念 主机 初始化发送,产生时钟信号和终止发送的器件 从机 被主机寻址的器件 发送器 发送数据到总线的器件 接收器 ...
- java_web学习(七) MySQL的配置与安装
一:下载MySQL 1.进入oracle官网 2. 3. 4. 5. 6. 7. 网址:https://dev.mysql.com/downloads/file/?id=469273 二:配置MySQ ...
- SpringBoot入坑-持久化操作
前面内容中我们已经了解到了SpringBoot关于参数传递的相关知识,本篇我们一起来学习一下SpringBoot关于数据库持久化操作的知识,这里我们使用JPA进行数据库的持久化操作. 首先由于我们需要 ...
- CTF---隐写术入门第三题 打不开的文件
打不开的文件分值:10 来源: 实验吧 难度:中 参与人数:2718人 Get Flag:1222人 答题人数:1276人 解题通过率:96% 咦!这个文件怎么打不开? 解题链接: http://ct ...
- 51 Nod 1791 合法括号子段【分治+字符串】
1791 合法括号子段 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 有一个括号序列,现在要计算一下它有多少非空子段是合法括号序列. 合法括号序列的定义是: 1. ...
- HDU2973(威尔逊定理)
YAPTCHA Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- 2017ecjtu-summer training #3 POJ3264
...
- hdu_1012(水题。。。不能再水)
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using ...
- Spark入门学习
1. Spark Overview(spark概述) Apache spark是一个快速和通用的集群计算系统.它提供了Java,Scala,Python和R的高级APIs,以及支持通用执行图的优化引擎 ...
- Spring配置集群定时任务
正常配置定时任务的时候配置定时任务调度工厂的代码如下 <bean id="" class="org.springframework.scheduling.quart ...