Oracle 11~ 游标与触发器

1.Oracle 游标(cursor):通过关键字CURSOR来定义一组查询出来的数据集,类似数组一样,把查询到的数据集存储在内存中,然后通过游标指向其中的一条记录,通过循环游标达到循环数据局的目的。(1)显式游标:使用之前先声明定义。一般是对查询结果定义游标,通过打开游标循环获取结果集内的记录,跳出循环结束游标的获取,关闭游标不再获取结果集。 声明游标:给游标命名并关联一个查询结果集...
摘要由CSDN通过智能技术生成

1.Oracle 游标(cursor):通过关键字CURSOR来定义一组查询出来的数据集,类似数组一样,把查询到的数据集存储在内存中,然后通过游标指向其中的一条记录,通过循环游标达到循环数据局的目的。

(1)显式游标:使用之前先声明定义。一般是对查询结果定义游标,通过打开游标循环获取结果集内的记录,跳出循环结束游标的获取,关闭游标不再获取结果集。

   声明游标:给游标命名并关联一个查询结果集。

declare cursor 游标名
is select查询语句;

    打开游标:初始化游标指针,游标一旦打开,就算表的基础数据发生变化游标对应的结果集也不会再变了。

open 游标名;

    读取游标中的数据:把当前游标指针指向的数据行读取到对应的变量中,一般和循环一起使用。

fetch 游标名 into 变量名;

    关闭游标:游标使用完,一定要关闭游标释放资源。

close 游标名;

   显式游标的常用属性:%notfound(没有数据返回true,有数据返回false,用来判断游标是否全部循环完毕)

                                      %found(和notfound相反)

                                      %isopen(判断游标是否打开)

                                      %rowcount(用作计数器,表示当前游标fetch into获取了多少行数据)

     例1,创建一个游标,循环打印学生表中的学生信息。

declare
cursor stu_cur is select * from stuinfo order by stuid;
ls_curinfo stu_cur%rowtype;
begin
open stu_cur;
loop
fetch stu_cur into ls_curinfo;
exit when stu_cur%notfound;
dbms_output.put_line('学号:'||ls_curinfo.stuid ||'姓名:'||ls_curinfo.stuname);
end loop;
close stu_cur;
end;

 例2,用%rowcount修改案例1,输出语句改为:

dbms_output.put_line('rowcount计数器:第'||stu_cur%rowcount||'位'||'学号:'||ls_curinfo.stuid ||'姓名:'||ls_curinfo.stuname);

(2)隐式游标:PL/SQL自己管理的游标,开发者只能获得它

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值