游标的使用方法

游标的学习
1. 声明游标就是为了定义一个游标名称来对应一条查询语句,然后对这个查询结果集进行单行操作
声明语句在单个使用的时候需要在declare子句中进行,在存储过程中便是需要在存储过程定义里面定义
声明示例:

   declare 
         cursor  cur_name [....可以带参数] is select cb,duo....from testTable where id =1; 显式游标,对于单行操作
     begin
     end;
    declare 
         cursor  cur_name [....可以带参数] is select cb,duo....from testTable ; 隐式游标,对于多行结果集操作
     begin
     end;
 2.打开游标 
    open  cur_name[..] 如果带有参数则需要传参数...
 3.检索游标
 检索游标就是为了把单行数据保存到自己定义的变量中
 示例:
 declare
     cursor  cur_emp is select * from employees where employee=200;
     row_emp employees%rowtype --定义变量为表中的一行数据 %type则是一列数据
 begin
     open cur_emp;
     fetch cur_emp into row_emp;--检索游标
 end;
 4.关闭游标
 close cur_name;

 5.游标的属性

%FOUND:变量最后从游标中获取记录的时候,在结果集中找到了记录。
%NOTFOUND:变量最后从游标中获取记录的时候,在结果集中没有找到记录。
%ROWCOUNT:当前时刻已经从游标中获取的记录数量。
%ISOPEN:是否打开。
往往这些属性都是用来进行相信的判断的

 6.游标的循环
 6.1 简单的游标循环
 示例: 
 declare
     cursor  cur_emp is select * from employees where employee=200;
     row_emp employees%rowtype --定义变量为表中的一行数据 %type则是一列数据
 begin
     open cur_emp;
     loop
     fetch cur_emp into row_emp;--检索游标
     eixt when cur_emp%NOTFOUND;
     dbms_output.put_line('.....'); 表里每行的数据
     end loop;
     close cur_emp;
 end;
 6.2 for循环  好处:变量中已经存储了检索记录的所有列值,不需要在定义检索游标,而且在检索完之后会自动退出循环并隐式地关闭游标
 示例:
 for bieming in cur_emp 
      loop
         使用列值的方式就是直接bieming.列名
          ......
      end loop;

7.显式和隐式游标的区别:
 显式游标使用的是SELECT叙述,被声明于任何一个区块的声明段落中,开发者可以控制几乎所有与游标有关的操作。
 显示游标对游标的处理提供了其他类似的游标无法做到的控制。他们要使用一次会传回多余一笔记录的SELECT叙述。虽然他们提供了比隐式游标更多的控制,但也需要额外的步骤来操作。

 PL/SQL为所有SQL数据操作语句(包括返回一行的SELECT)隐式声明游标,称为隐式声明游标的原因是用户不能直接命名和控制此类游标。当用户在PL/SQL中使用数据库操作语言(DML)时,Oracle预定义一个名为SQL的隐式游标,通过检查隐式游标的属性可以获取与最近执行的SQL语句相关的信息
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值