Oracle
 sql >> Database >  >> RDS >> Oracle

Come chiamare la funzione Oracle che ha SYS_REFCURSOR come parametro OUT

Basta dichiarare una variabile di tipo SYS_REFCURSOR nel blocco richiamante e richiamare la propria funzione, ad es. da SQL/Plus:

 set autoprint on;
 var cur refcursor;

 declare
      FUNCTION test_fun (
        p_ref_cur               OUT SYS_REFCURSOR)
      RETURN NUMBER is
      begin
        open p_ref_cur for select * from dual;
        return 1;
      end;

 begin
     dbms_output.put_line(test_fun(:cur));
 end;
 /