plsql-光标的使用

1、光标实际上就是一个集合;

2、光标的属性

%found  取到值则返回true;没取到值则返回false;

%notfound  没取到值则返回true;取到值则返回false;

%isopen  光标是否打开;

%rowcount  影响的行数;

3、光标数的限制

默认在同一个会话中,可以打开300个光标。

4、无参数的光标

例子:循环打印出员工表中员工姓名和工资


DECLARE
--定义光标
CURSOR CEMP IS  SELECT  T.NAME ,T.SAL FROM  EMP T  ;
DNAME EMP.NAME%TYPE;
DSAL EMP.SAL%TYPE;
BEGIN
  --打开光标
  OPEN CEMP;
  LOOP
    --取一条数据
    FETCH CEMP INTO DNAME,DSAL ;
    EXIT WHEN CEMP%NOTFOUND;
    DBMS_OUTPUT.put_line(DNAME||'的工资:'||DSAL);
    END LOOP;
  --关闭光标
  CLOSE CEMP;
  END;

打印结果:

5、有参数的光标

例:循环打印出员工表中部门为1的员工姓名

DECLARE
--定义带参数的光标
CURSOR CEMP(DEPTNO1 VARCHAR2) IS  SELECT  T.NAME FROM  EMP T  WHERE T.DEPTNO =DEPTNO1;
DNAME EMP.NAME%TYPE;
BEGIN
  --打开光标
  OPEN CEMP('1');
  LOOP
    FETCH CEMP INTO DNAME ;
    EXIT WHEN CEMP%NOTFOUND;
    DBMS_OUTPUT.put_line(DNAME);
    END LOOP;
  --关闭光标
  CLOSE CEMP;
  END;
 打印结果:

 

注:  取光标中一条数据:

fetch 光标名 into 变量名;

这条语句有两个作用

<1>将当前指针指向的记录返回;

<2>将指针指向下一条记录。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

45画美少女

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值