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 ...
随机推荐
- Redux 介绍
本文主要是对 Redux 官方文档 的梳理以及自身对 Redux 的理解. 单页面应用的痛点 对于复杂的单页面应用,状态(state)管理非常重要.state 可能包括:服务端的响应数据.本地对响应数 ...
- 基于Windows环境下MyEclipse10快捷键总结
---------------------------------------------MyEclipse 快捷键1(CTRL)----------------------------------- ...
- C++面向对象作业1
#include <iostream> #include <stdlib.h> using namespace std; class Tdate { public: Tdate ...
- 计蒜客:百度的科学计算器(简单)【python神解】
题目链接:https://nanti.jisuanke.com/t/15504 题解:python大法好啊,三行代码无人能敌啊! 下面给出AC代码: b=input() a=input() print ...
- [bzoj2843&&bzoj1180]极地旅行社 (lct)
双倍经验双倍的幸福... 所以另一道是300大洋的世界T_T...虽然题目是一样的,不过2843数据范围小了一点... 都是lct基本操作 #include<cstdio> #includ ...
- HDU-5421Victor and String
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5421 因为要在前面插字符,所以维护一个前缀链和后缀链,在同一棵回文树上搞,如果有某个最长回文后缀(或前缀) ...
- hdu_3483A Very Simple Problem(C(m,n)+快速幂矩阵)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3483 A Very Simple Problem Time Limit: 4000/2000 MS ( ...
- A. Vasya and Football
A. Vasya and Football time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- c语言基础学习09_复合类型
=============================================================================涉及到的知识点有:一.结构体1.定义结构体st ...
- qt creator 中的"提升为..."功能简介
1.新建一个项目 2.打开文件:mainwindow.ui ->拖一个 tree widget 控件到画布->右击弹出对话框->单击"提升为..."选项 3.输入 ...