【学亮IT手记】PL/SQL游标编程
游标提供了一种从表中检索数据并进行操作的灵活手段,主要用在服务器上,处理由客户端发送给服务器端的sql语句,或者是批处理、存储过程、触发器中的数据处理请求。
显式游标
是由用户声明和操作的一种游标,通常用于将查询出的结果集进行操作,使用它处理数据的步骤包括:声明游标,打开游标,读取游标,关闭游标。
①声明游标
cursor cur_emp
is
select ename,job from emp where empno=7499;
cur_emp:游标名称。
②打开游标
open cur_emp
③读取游标
fetct cur_emp into {variable}
④关闭游标
close cur_emp
游标的常用属性
无论是显式游标还是隐式游标,都具有%found %notfound %rowcount %isopen 这4个属性。
declare
var_ename varchar2(50);
var_job varchar2(50);
cursor cur_emp
is
select ename,job from emp where empno=7499;
begin
open cur_emp;
fetch cur_emp into var_ename,var_job;
if cur_emp%found then
dbms_output.put_line('编号是7499的员工名称为:'||var_ename||',职务是:'||var_job);
else
dbma_output.put_line('无数据记录');
end if;
end;
隐式游标
在执行一个sql语句的时候,oracle会自动创建一个隐式游标。主要是针对update/delete语句的执行结果进行操作。
begin
update emp set sal=sal*(1+0.2) where job='SALESMAN';
if sql%notfound then
dbms_output.put_line('没有雇员需要上调工资');
else
dbms_output.put_line('有'||sql%rowcount||'个雇员工资上调20%');
end if;
end;
使用for语句遍历游标
①使用for遍历隐式游标
begin
for emp_record in
(select empno,ename,sal from emp where job='SALESMAN')
loop
dbms_output.put_line('雇员编号:'||emp_record.empno);
dbms_output.put_line('雇员姓名:'||emp_record.ename);
dbms_output.put_line('雇员工资:'||emp_record.sal);
end loop;
end;
②使用for遍历显式游标
declare
cursor cur_emp
is
select * from emp where deptno=30;
begin
for emp_record in cur_emp
loop
dbms_output.put_line('雇员编号:'||emp_record.empno);
dbms_output.put_line('雇员姓名:'||emp_record.ename);
dbms_output.put_line('雇员职务:'||emp_record.job);
end loop;
end;
【学亮IT手记】PL/SQL游标编程的更多相关文章
- PL/SQL存储过程编程
PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...
- PL/SQL 基础编程
PL/Sql 编程 PL/Sql结构 [declare] --声明变量 begin --执行部分 [exception] ---异常处理部分 end PL/Sql 基本数据类型 数值类型 1. nu ...
- PL/SQL 游标 (实验七)
PL/SQL 游标 emp.dept 目标表结构及数据 要求 基于部门表建立游标dept_cursor1,使用记录变量接收游标数据,输出部门表信息: 显示格式: 部 门 号: XXX 部门名称: XX ...
- PL/SQL 游标
本随笔不是原创,只是学习笔记,用于加深记忆,原创地址PL/SQL --> 游标 一.游标的相关概念和特性 1.定义: 映射到结果集中的某一行的特定位置,类似与C语言中的指针.即通过游标方式定位到 ...
- oracle PL/SQL基础编程
PL/SQL(Procedural Language/SQL)是oracle中引入的一种过程化编程语言 PLS-00103:出现符号"declare"在需要下列之一时 符号&quo ...
- Oracle数据库之PL/SQL游标
1. 游标概念 字面意思是游动的光标,是指向上下文区域的句柄或指针. 在PL/SQL块中执行CRUD操作时,ORACLE会在内存中为其分配上下文区.用数据库语言来描述游标就是:映射在上下文区结果集中一 ...
- 初试PL/SQL并行编程
-----------------------------Cryking原创------------------------------ -----------------------转载请注明出处, ...
- Oracle PL/SQL 游标
在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,ORACLE会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...
- PL/SQL 游标的使用
游标的使用 ①游标概念 为了处理SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息, 当中包含要处理的行的数目.一个指向语句被分析以后的表示 ...
随机推荐
- 在线编辑器ACE Editor的使用
ACE 是一个开源的.独立的.基于浏览器的代码编辑器,可以嵌入到任何web页面或JavaScript应用程序中.ACE支持超过60种语言语法高亮,并能够处理代码多达400万行的大型文档.ACE开发团队 ...
- SQLite 线程安全和并发
SQLite 与线程 SQLite 是线程安全的. 线程模型 SQLite 支持如下三种线程模型 单线程模型 这种模型下,所有互斥锁都被禁用,同一时间只能由一个线程访问. 多线程模型 这种模型下,一个 ...
- 用户对动态PHP网页访问过程,以及nginx解析php步骤
www.example.com | Nginx | 路由到www.example.com/index.php | 加载nginx的fast-cgi模块 | fast-cgi监听127.0.0.1:90 ...
- ISCC:Please give me username and password!
地址:http://118.190.152.202:8017/ 题目说 给用户名和密码, 构造url为:118.190.152.202:8017/?username=sda&password= ...
- mysql的模糊匹配
实例: SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下: 1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden). 2.LIKE'%inger' ...
- Python 学习 第十四篇:命名元组
Python的元组不能为元组内部的数据进行命名,而 collections.namedtuple 可以来构造一个含有字段名称的元组类,命名元组可以通过逗号+字段名来获取元素值: collections ...
- Visual studio 2015 Community 安装过程中遇到问题的终极解决
早就有给自己电脑升级VS的想法,可是安装过程并不顺利,一直拖到现在,昨天下定决心,把遇到的问题一个个解决,终于安装成功了,将安装过程中遇到的问题和解决方法记录一下. 需要说明一下的是,不同的电脑环境可 ...
- Python_迭代器和生成器的复习_38
迭代器和生成器 迭代器: 双下方法:很少直接调用的方法,一般情况下,是通过其他方法触发的 可迭代的协议——可迭代协议 含有__iter__ 的方法 ('__iter__' in dir(数据)) 可迭 ...
- 软件工程(FZU2015) 学生博客列表(最终版)
FZU:福州大学软件工程 张老师的博客:http://www.cnblogs.com/easteast/ 经过前两周选课,最后正式选上课程的所有学生博客如下: 序号 学号后3位 博客 1 629 li ...
- ocrosoft 程序设计提高期末复习问题M 递归求猴子吃桃
http://acm.ocrosoft.com/problem.php?cid=1172&pid=12 题目描述 猴子吃桃问题.猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个. ...