本篇文章的目的是通过建一个存储过程来返回一个结果集合,并通过前台调用把结果集展示出来
--建立存储过程,参数类型为OUT SYS_REFCURSOR
create or replace procedure test_ref_cursor(v_cursor out sys_refcursor)
as
begin
open v_cursor for select * from emp;
end;
--方法一,通过SQL PLUS 前台调用存储过程,代码块如下
SQL> declare
2 type v_cursor is ref cursor RETURN emp%RowType;
3 v_cur v_cursor;
4 v_temp v_cur%rowtype;
5 begin
6 test_ref_cursor(v_cur);
7 loop
8 exit when v_cur%notfound;
9 fetch v_cur into v_temp;
10 dbms_output.put_line(v_temp.ename);
11 end loop;
12 close v_cur;
13 end;
14 /
--方法二,代码如下:
declare
type v_cursor is ref cursor;
v_cur v_cursor;
v_temp emp%rowtype;
begin
open v_cur for select * from emp;
loop
exit when v_cur%notfound;
fetch v_cur into v_temp;
dbms_output.put_line('v_temp='||v_temp.ename);
end loop;
close v_cur;
end;
本文介绍如何使用Oracle PL/SQL创建一个返回员工表记录的存储过程,并通过两种方法调用该存储过程来获取和展示结果集。第一种方法通过声明REF CURSOR类型的变量并在存储过程中打开它来实现,第二种方法直接在调用中使用游标。
754

被折叠的 条评论
为什么被折叠?



