以下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. Jquery_基础(三) ajax与json

    什么是ajax? AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. ...

  2. 集合 (set) 的增删改查及 copy()方法

    一.集合 1.集合的创建 set1 = set({1,2,'barry'}) set2 = {1,2,'barry'} print(set1,type(set1)) print(set2,type(s ...

  3. BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】

    1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 4813  Solved: 2877[Submit][Stat ...

  4. c++(排序二叉树插入)

    二叉树的节点插入比较简单.一般来说,二叉树的插入主要分为以下两个步骤: 1) 对当前的参数进行判断,因为需要考虑到头结点,所以我们使用了指针的指针作为函数的输入参数 2) 分情况讨论: 如果原来二叉树 ...

  5. 听说 Android 9.0 要禁用 @Hide Api 的调用,你怎么看?

    Android 9.0? Hi,大家好,我是承香墨影! 距离 Android 8.0 发布,已经过了五个月,虽然现在占有率并不高,不过呢,Google 已经着手准备下一版本的 Android 系统. ...

  6. [国嵌攻略][067][tftp协议分析]

    TFTP作用 用于网络下载,TFTP客户机在TFTP服务器中下载文件. TFTP交换过程 1.配置TFTP服务器 vim /etc/xinetd.d/tftp 2.交换过程 客户端发请求包到服务器 服 ...

  7. [国嵌攻略][065][DM9000驱动程序设计]

    移植代码:通过已有的可用的代码修改到新环境下运行. 代码编写: 初始化网卡 1.选中网卡 nLAN_CS BWSCON(0x48000000) DW4:01 16bit BANKCON4(0x4800 ...

  8. 炫酷线条动画--svg

    我们经常可以在一些页面看到看起来很酷的线条动画,有些可以用css实现,有些css就无能为力了,今天来研究另一种实现方式,svg 如果对svg是什么还不了解的话,可以先去看看svg的基础教程: 一般对于 ...

  9. html_栏目下拉

    ========================================================= =================[ 下拉栏目菜单 ]=============== ...

  10. 怎样用PS对照片进行美白?

    摘录自:http://product.pconline.com.cn/itbk/software/ps/1408/5336118.html 步骤1.打开需要美白肤色的照片.本教程为防止侵犯他人肖像权, ...