[置顶] Oracle 参照游标(SYS_REFCURSOR)使用

 

 I

在这篇文章中介绍如何使用存储过程处理参考游标

1.创建必要的表和样例数据

 

CREATE TABLE USER_INFO
 (
    User_ID integer primary key,--Primary key
    User_Name varchar2(20),
    sex varchar2(2)
 );
 insert into user_info(user_name,sex) values('David.Tian','M');
 insert into user_info(user_name,sex) values('Lucy','F'); 
 commit;
 
 select * from user_info;


 

2. 创建存储过程,其参数类型为SYS_REFCURSOR

create or replace procedure getResult(p_cursor out sys_refcursor)
as
begin
  open p_cursor for
  select * from user_info;
end;

 

3. 下面的代码块演示如何使用存储过程中的参考游标

declare
  v_cursor sys_refcursor;
  u user_info%rowtype;
begin
  getResult(v_cursor);
  loop 
  fetch v_cursor into u.user_id, u.user_name,u.sex;          
  exit when v_cursor%notfound;
  dbms_output.put_line(u.user_id||'-'||u.user_name||'-'||u.sex);
  end loop;
end;
/


你可能感兴趣的:(oracle,sys_refcursor,参照游标)