日期:2014-05-17 浏览次数:20988 次
--你试过么,就说定义不了。 [TEST@myoracle] SQL>create or replace procedure my_proc( 2 i_aa varchar2, 3 o_cursor out sys_refcursor 4 ) 5 as 6 begin 7 open o_cursor for 8 select * from tab where 1=i_aa; 9 end; 10 / 过程已创建。 [TEST@myoracle] SQL>var aa varchar2(2000); [TEST@myoracle] SQL>var bb refcursor; [TEST@myoracle] SQL>begin :aa := 1; end; 2 / PL/SQL 过程已成功完成。 [TEST@myoracle] SQL>exec my_proc(:aa,:bb); PL/SQL 过程已成功完成。 [TEST@myoracle] SQL>print :bb; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- TEST TABLE T1 TABLE [TEST@myoracle] SQL>
------解决方案--------------------
sys_refcursor 实质就是 refcursor
所以,你只要定义 refcursor 就可以
你如果 var bb sys_refcursor 这肯定就报错了