游标提供了一种从表中检索数据并进行操作的灵活手段,主要用在服务器上,处理由客户端发送给服务器端的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. MySQL高级知识(七)——索引面试题分析

    前言:该篇随笔通过一些案例,对索引相关的面试题进行分析. 0.准备 #1.创建test表(测试表). drop table if exists test; create table test( id ...

  2. 6.01-re-split_chinese

    import re # 1.拆分字符串 one = 'asdsfsgsh' # 标准 是 s 为拆分 pattern = re.compile('s') result = pattern.split( ...

  3. centos7下kubernetes(8.kubernetes Failover)

    上一节我们运行的3个容器 其中有两个是运行在node2上一个运行在node1上,现在我们关闭node1,观察node1上的容器会发生什么变化 目前node1已经处于notready状态 现在我们查看一 ...

  4. centos7下kubernetes(1。kubernetes---start)

    kubernetes官网:https://kubernetes.io/docs/home/ 也是怀着不情愿的心情,要开始kubernetes了,本身是非常热爱技术,尤其是容器技术,可能是最近有点累和懈 ...

  5. centos7下安装docker(15.6docker跨主机网络---Weave)

    Weave是weaveworks开发的容器网络解决方案.weave创建的虚拟网络可以将部署在多个主机上的容器连接起来.对于容器来说,weave就像一个巨大的网络交换机,容器可以直接通信,无需NAT和端 ...

  6. 实战Performance Monitor监测EnyimMemcached

    首先要将EnyimMemcached安装至Windows Performance Counters中. 将Enyim.Caching.dll复制到一个文件夹中 在命令行中进入.NET Framewor ...

  7. DataGrid获取单元格的值

    string str = (dataGrid.Columns[0].GetCellContent(dataGrid.Items[0]) as TextBlock).Text;

  8. SpringBoot的简单登陆开发例子

    1:这个例子用spirngboot整合mybatis,jdbc等技术开发的 2:步骤 2.1:新建一个工程 主要的两个步骤已经贴图了,第二张图是直接在pom.xml文件中加入依赖 2.2:新建完项目, ...

  9. P1316 丢瓶盖(二分+贪心)

    思路:都在注解里 #include<iostream> #include<algorithm> using namespace std; ; int a[maxn], n, m ...

  10. 【转】Win10开机密码忘了?教你破解Win10开机密码

    [PConline 技巧]Win10开机密码忘记了怎么办?这个问题很多人都遇到过,如何破解一台Win10电脑的开机密码呢(非BIOS开机密码)?其实很简单,利用下面这个方法,分分钟就能搞定. 一招破解 ...