游标提供了一种从表中检索数据并进行操作的灵活手段,主要用在服务器上,处理由客户端发送给服务器端的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游标编程的更多相关文章

  1. PL/SQL存储过程编程

    PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...

  2. PL/SQL 基础编程

    PL/Sql 编程 PL/Sql结构 [declare] --声明变量 begin --执行部分 [exception] ---异常处理部分 end PL/Sql  基本数据类型 数值类型 1. nu ...

  3. PL/SQL 游标 (实验七)

    PL/SQL 游标 emp.dept 目标表结构及数据 要求 基于部门表建立游标dept_cursor1,使用记录变量接收游标数据,输出部门表信息: 显示格式: 部 门 号: XXX 部门名称: XX ...

  4. PL/SQL 游标

    本随笔不是原创,只是学习笔记,用于加深记忆,原创地址PL/SQL --> 游标 一.游标的相关概念和特性 1.定义: 映射到结果集中的某一行的特定位置,类似与C语言中的指针.即通过游标方式定位到 ...

  5. oracle PL/SQL基础编程

    PL/SQL(Procedural Language/SQL)是oracle中引入的一种过程化编程语言 PLS-00103:出现符号"declare"在需要下列之一时 符号&quo ...

  6. Oracle数据库之PL/SQL游标

    1. 游标概念 字面意思是游动的光标,是指向上下文区域的句柄或指针. 在PL/SQL块中执行CRUD操作时,ORACLE会在内存中为其分配上下文区.用数据库语言来描述游标就是:映射在上下文区结果集中一 ...

  7. 初试PL/SQL并行编程

    -----------------------------Cryking原创------------------------------ -----------------------转载请注明出处, ...

  8. Oracle PL/SQL 游标

    在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,ORACLE会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...

  9. PL/SQL 游标的使用

     游标的使用 ①游标概念 为了处理SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息, 当中包含要处理的行的数目.一个指向语句被分析以后的表示 ...

随机推荐

  1. 深入理解Zuul之源码解析

    转载:http://blog.csdn.net/forezp/article/details/76211680 Zuul 架构图 在zuul中, 整个请求的过程是这样的,首先将请求给zuulservl ...

  2. 性能优化——Android图片压缩与优化的几种方式

    图片优化压缩方式大概可以分为以下几类:更换图片格式,质量压缩,采样率压缩,缩放压缩,调用jpeg压缩等1.设置图片格式Android目前常用的图片格式有png,jpeg和webp,png:无损压缩图片 ...

  3. 【vue】vue +element 搭建项目,实现实时输入效果时停止输入后发送请求

    1.实现的效果 输入关键字后,根据输入的关键字实时显示搜索的结果,按回车键时也进行搜索 2.原理: 通过时间戳+定时器+一个全局变量实现.代码量很少比较易懂. 用户输入时触发keyup事件,并调用事件 ...

  4. .NET中使用Redis 转发

    .NET中使用Redis   Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http: ...

  5. 极端恢复时用到的几个隐藏参数 Oracle hidden corruption recovery parameters

    Oracle hidden corruption recovery parameters Note: Oracle hidden parameters are undocumented and uns ...

  6. package-info.java的使用

    一.引入 上文中,提到了注解类JyzTargetPackage可以定义为@Target(ElementType.PACKAGE),可是在被注解类里我无论怎么加,编译器都报错,于是引入了package- ...

  7. pyspider环境部署2--pyspider安装

    接上篇文章,在python3.6.4安装完成的基础上,安装相关依赖模块及pyspider. 依赖安装 1.setuptools和pip setuptools和pip是python的包管理工具,pyth ...

  8. 数组升序排序的方法Arrays.sort();的应用

    package com.Summer_0421.cn; import java.util.Arrays; /** * @author Summer * 数组升序排序的方法Arrays.sort();应 ...

  9. upper_bound

    头文件: #include<algorithm> 作用: 查找第一个大于给定数的元素或位置 在从小到大的排序数组中, 1.容器 (1).返回元素 #include<cstdio> ...

  10. Hadoop Yarn调度器的选择和使用

    一.引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色.在讨论其构造器之前先简单了解一下Yarn的架构. 上图是Yarn的基本架构,其中ResourceManager是整个架构的核 ...