plsql创建存储过程(二、使用游标返回多列值)

原创
2017/03/16 22:02
阅读数 1.2K

在使用存储过程中,经常回返回多个值的情况存在,那么就回使用游标,我的理解就是一个可以移动的行指针,在本行操作完成后会自动指向下一行,用以遍历所有行元素

简单实例

create or replace procedure pro_test3
is
v_ename emp.ename%type;
cursor cur_ename is select ename from emp;
begin
  open cur_ename;
  loop
    fetch cur_ename into v_ename;
    exit when cur_ename%notfound;
    dbms_output.put_line(v_ename);
  end loop;
  close cur_ename;
end;

其中声明变量部分,emp.ename%type表示声明变量v_ename与emp表中的ename字段类型相同

cursor cur_ename is select ename from emp;表示声明一个游标,名称为cur_ename,并定义其内容为select ename from emp返回的结果集

在存储过程体中,使用游标需要先执行open cur_ename来打开游标

loop表示循环输出,也就是指针随结果下移一步

fetch cur_ename into v_ename;表示 将本次游标所指行内的数据赋值给变量v_ename;

exit when  cur_ename%notfound;表示当游标指针所指行内没有数据时跳出循环,

存储过程调用

begin
  pro_test3;
end;

 

 

 

 

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部