PLSQL--游标

1.游标

  1.1什么是游标

   用于临时存储一个查询返回的多行数据(结果集,类似于Java的JDBC连接返回     的 ResultSet集合),通过遍历游标,可以逐行访问处理该结果的数据。

  游标的使用方式:声明--->打开-->读取--->关闭

  1.2语法

  游标声明:

  CURSOR 游标名[(数据列表)]   IS  查询语句;

  游标的打开:

  OPEN游标名;

  游标的取值:

  FETCH 游标名 INTO 变量列表;

  游标的关闭:

  CLOSE 游标名;

  1.3 游标的属性

    %FOUND  变量最后从游标中获取记录的时候,在结果集中找到了记录。

    %NOTFOUNT   变量最后从游标中获取记录的时候,在结果集中没有找到记录。

       %ROWCOUNT  当前时刻已经从游标中获取的记录数量。

            %ISOPEN 当前时刻已经从游标中获取的记录数量。

  示例1(不带参数的游标):使用游标查询emp表中所有员工的姓名和工资,并将其依次打印出来

   

 1 -- Created on 2018/8/23 by MENGMENG.CHEN 
 2 --使用游标查询emp表中所有员工的姓名和工资,并将其依次打印出来
 3 declare 
 4   -- 声明游标
 5   CURSOR c_emp IS SELECT ENAME,SAL FROM EMP;
 6   --声明变量接收游标中的数据
 7   v_name emp.ename%TYPE;
 8   v_sal   emp.sal%TYPE;
 9 begin
10   --打开游标
11   OPEN c_emp;
12   
13   --遍历游标
14   LOOP
15     --获取游标中的数据,如果有的话就赋值给变量
16     FETCH c_emp INTO v_name,v_sal;
17     EXIT WHEN c_emp%NOTFOUND;
18        DBMS_OUTPUT.put_line('姓名:' || v_name || '薪水:' || V_SAL);
19     END LOOP;
20     
21   --退出游标
22   
23 end;

 

 

  运行结果:

示例2(带参数的游标):使用游标查询emp表中员工号=7839的员工姓名和工资,并将其依次打印出来

 1 -- Created on 2018/8/23 by MENGMENG.CHEN 
 2 --使用游标查询emp表中员工号=7839的姓名和工资,并将其依次打印出来
 3 declare 
 4   -- 声明游标
 5   CURSOR c_emp(v_empno emp.empno%TYPE) IS SELECT ENAME,SAL FROM EMP WHERE empno = v_empno;
 6   --声明变量接收游标中的数据
 7   v_name emp.ename%TYPE;
 8   v_sal   emp.sal%TYPE;
 9 begin
10   --打开游标
11   OPEN c_emp(7839);
12   
13   --遍历游标
14   LOOP
15     --获取游标中的数据,如果有的话就赋值给变量
16     FETCH c_emp INTO v_name,v_sal;
17     EXIT WHEN c_emp%NOTFOUND;
18        DBMS_OUTPUT.put_line('姓名:' || v_name || '薪水:' || V_SAL);
19     END LOOP;
20     
21   --退出游标
22   
23 end;

运行结果:

 

转载于:https://www.cnblogs.com/ChenMM/p/9525369.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值