具有SQL Server背景的人员用于编写返回整个查询结果的存储过程,因此尝试编写如下所示的PL / SQL过程:
procedure get_emps is
begin
-- this will NOT work!
select * from emp;
end;
不幸的是,这不是那么简单.可能在PL / SQL中最近的等价物是返回参考游标的函数:
function get_emps return sys_refcursor is
rc sys_refcursor;
begin
open rc for
select * from emp;
return rc;
end;
你可以从这样的调用程序中调用它:
declare
cur sys_refcursor;
emp_rec emp%rowtype;
begin
cur := get_emps;
loop
fetch cur into emp_rec;
exit when cur%notfound;
end loop;
close cur;
end;
或者在SQL Plus中你可以做:
var rc refcursor
:rc := get_emps;
print rc
本文介绍如何使用PL/SQL通过返回引用游标来实现查询结果的传递。具体包括一个无法工作的示例以及正确的实现方式,并展示了如何在程序中调用这些过程。
919

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



