如何从 plsql 函数创建和返回游标?
Posted
技术标签:
【中文标题】如何从 plsql 函数创建和返回游标?【英文标题】:How can I create and return a cursor from a plsql function? 【发布时间】:2011-05-07 20:14:13 【问题描述】:我创建了一个 plsql 函数,我想创建一个游标并从函数中返回这个游标。然后我想在 Java 类中调用这个函数并从游标中检索数据。注意:光标返回一行。 我写了这样的东西,,
CREATE OR REPLACE
FUNCTION FUNCTION1 ( emp_id IN NUMBER)RETURN cursor AS
cursor newCursor(e_id number) is
select * from table1 where employee_id = e_id;
type refCursor is ref cursor;
BEGIN
open newCursor(emp_id);
loop
exit when newCursor%notfound;
fetch newCursor into refCursor;
end loop;
RETURN refCursor;
END FUNCTION1;
如果我想返回一个游标,我应该使用什么返回类型?
【问题讨论】:
【参考方案1】:按照下面的函数建模
create or replace function getemps return sys_refcursor is
v_curs sys_refcursor;
begin
open v_curs for select ename from emp;
return v_curs;
end;
/
【讨论】:
如果我想在这种情况下将参数传递给光标,我该怎么做?? 在一个包里怎么做?【参考方案2】:sys_refcursor 是 oracle 的通用隐式游标 改为使用 EXPLICITE 游标
【讨论】:
以上是关于如何从 plsql 函数创建和返回游标?的主要内容,如果未能解决你的问题,请参考以下文章