从概念到示例—Oracle隐式游标

转载自 http://www.poluoluo.com/jzxy/201106/135219.html


一、游标的相关概念:

  定义:

   游标它是一个服务器端的存储区,这个区域提供给用户使用,在这个区域里

  存储的是用户通过一个查询语句得到的结果集,用户通过控制这个游标区域当中

  的指针 来提取游标中的数据,然后来进行操作。

  实质:

   是用户在远程客户端上对服务器内存区域的操作,由数据库为用户提供这样的

  一个指针,使得用户能够去检索服务器内存区的数据。

   (1)、 指向上下文区域的句柄或指针

   (2)、上下文区域-用于SQL处理的内存区

   (3)、上下文区域的内容

   - 语句处理的行数

   -指向语句的语法分析表示的指针

   二、游标的类型

   a)静态游标

   -  隐式游标

   -  显式游标

   b)Ref游标

   三、游标具有的属性

   %notfound 询问是否没有结果集

   %found    询问是否存在结果集

   %rowcount 返回受影响的行数

   %isopen   询问游标是否已经打开

   四、先来说说隐式游标

   隐式游标 ---由Oracle数据库自动创建,名称是(SQL) ,主要用途是可以返回一个操作是否成功或失败.

   1.有Oracle在内部声明,由系统管理

   2.用于处理

   -DML语句   --注意只能用于DML语句哦。

   -返回单行的查询

   3.用于判断一个操作是否成功.

   SQL%notfound  --返回Boolean值  存在结果集返回 False

   SQL%found    --返回Boolean值   存在结果集返回 True

   SQL%rowcount  --用户成功提取数据的行数

   SQL%isopen   --在隐式游标里一般这个属性是自动打开和关闭的.且任何时候查询都返回False

  示例:向表中插入一行数据,询问是否插入成功.

 

declare
   isCount int:=0;
 begin
    insert into place values(2,'beijing');
    DBMS_output.put_line('游标所影响的行数:'||SQL%rowcount);
    if SQL%NotFound then
      DBMS_output.put_line('NotFound为真);
    else
      DBMS_output.put_line('NofFound为假');
    end if;
  
     if SQL%Found then
      DBMS_output.put_line('Found为真);
     else
      DBMS_output.put_line('Found为假');
     end if;
      if SQL%isopen then
      DBMS_output.put_line('isOpen为真);
     else
      DBMS_output.put_line('isOpen为假');
     end if;
     
    isCount:=SQL%rowcount;
    DBMS_output.put_line('影响了'||isCount||'行');
  end;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值