2011-05-07 48 views
1

我创建了一个plsql函数,我想创建一个游标并从函数返回这个游标。然后我想在Java类中调用该函数并从游标中检索数据。注意:游标返回一行。 我写了这样的事情,,如何从plsql函数创建并返回游标?

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; 

我应该使用什么样的返回类型,如果我想返回游标?

回答

7

型号有下列函数工作

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; 
/
+0

非常感谢你 – sahar 2011-05-07 20:37:31

+0

如果我想的参数传递给光标在这种情况下, , 我怎样才能做到这一点?? – sahar 2011-05-14 10:32:28

+0

如何在一个包中做? – 2016-11-14 17:13:32

0

SYS_REFCURSOR后是Oracle的通用隐式游标 使用EXPLICITE光标代替