以下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光标的使用的更多相关文章

  1. 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 ...

  2. 编程开发之--Oracle数据库--存储过程在out参数中使用光标(3)

    在本系列学习随笔中的第2节我们留下了2个问题,我们现在讨论在out参数中使用光标. 1.要在out参数中使用光标,我们需要申明一个包的结构,包的结构分为包头和包体,包头只负责申明,包体只负责实现.包头 ...

  3. Oracle游标(光标)

     watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFuZ2xpdXFpbmc=/font/5a6L5L2T/fontsize/400/fill/I0J ...

  4. Oracle 学习----游标(使用带参光标cursor)

    --表参照无参光标页信息 --注意:红色就是参数 declare cursor tt(pkeycode temp.keycode%type) is select name,sal from temp ...

  5. Oracle 学习----游标(使用无参光标cursor)

    表: ----游标----------------------------- declare cursor tt is select name,sal from temp; vname temp.na ...

  6. oracle常用的快捷键

    最近在开发过程中,遇到一些麻烦,就是开发效率问题,有时候其他同事使用PLSQL 编程效率明显高于自己,观察了好久,才发现他使用PLSQL 已经很长时间了而且,他自己也在其中添加了好多快捷方式, 1.登 ...

  7. Oracle安装注意点与工具使用简说

    oracle数据库安装 注意点:orcl,安装过程中指定sys,system等相关账户密码 scott账户下有常用的四张表,可用system或sys作为sysdba进去, 可alter user sc ...

  8. LoadRunner ---参数化数据源(oracle,mssql,excel)

    TXT文本,EXCEL表格以及数据库中的表都可以作为参数的数据集载体,LR都是支持的. 特别提醒:1.在形成数据池之后,数据库中的数据变化不会影响数据池中的数据.2.数据文件一定要以一个空行结束,否则 ...

  9. [转]Oracle Form 触发器执行顺序

    Trigger 不是数据库中的触发器,不过功能类似,都是当某个事件发生的时候会触发. Trigger中可以编写代码,当对应事件发生的时候就会执行该Trigger中的代码. Oracle Form中的T ...

随机推荐

  1. I2C通讯协议

    1.基本概念 主机            初始化发送,产生时钟信号和终止发送的器件 从机             被主机寻址的器件  发送器          发送数据到总线的器件 接收器       ...

  2. java_web学习(七) MySQL的配置与安装

    一:下载MySQL 1.进入oracle官网 2. 3. 4. 5. 6. 7. 网址:https://dev.mysql.com/downloads/file/?id=469273 二:配置MySQ ...

  3. SpringBoot入坑-持久化操作

    前面内容中我们已经了解到了SpringBoot关于参数传递的相关知识,本篇我们一起来学习一下SpringBoot关于数据库持久化操作的知识,这里我们使用JPA进行数据库的持久化操作. 首先由于我们需要 ...

  4. CTF---隐写术入门第三题 打不开的文件

    打不开的文件分值:10 来源: 实验吧 难度:中 参与人数:2718人 Get Flag:1222人 答题人数:1276人 解题通过率:96% 咦!这个文件怎么打不开? 解题链接: http://ct ...

  5. 51 Nod 1791 合法括号子段【分治+字符串】

    1791 合法括号子段 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 有一个括号序列,现在要计算一下它有多少非空子段是合法括号序列. 合法括号序列的定义是: 1. ...

  6. HDU2973(威尔逊定理)

    YAPTCHA Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  7. 2017ecjtu-summer training #3 POJ3264

                                                                                                        ...

  8. hdu_1012(水题。。。不能再水)

    #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using ...

  9. Spark入门学习

    1. Spark Overview(spark概述) Apache spark是一个快速和通用的集群计算系统.它提供了Java,Scala,Python和R的高级APIs,以及支持通用执行图的优化引擎 ...

  10. Spring配置集群定时任务

    正常配置定时任务的时候配置定时任务调度工厂的代码如下 <bean id="" class="org.springframework.scheduling.quart ...