我的存储过程的参数是这样的:
create or replace procedure cyry_SearchByInfo
(
rfcur out sys_refcursor,
sfzhl varchar2:=20,
xml varchar2:=20,
xbl varchar2:=20,
csrql varchar2:=20,
hjqhl varchar2:=20,
fjl varchar2:=20,
pcsl varchar2:=20,
fwcsl varchar2:=40,
rllybjl varchar2:=10,
dwbh1 varchar2:=20
)
is
我在SQL Developer里执行这样写的:
EXECUTE cyry_SearchByInfo (system.sys_refcursor,'','','','','','','','','','')
报错的,那个输出参数赋值不对,好像不是system.sys_refcursor这个,但是应该怎么写呢?

解决方案 »

  1.   

    先定义个变量
    比如:
    DECLARE cur sys_refcursor;
    begin
    cyry_SearchByInfo (cur,'','','','','','','','','','');
    ....  --对结果cur的处理
    close cur;
    end;
      

  2.   

    out 参数,在调用前必须先声明变量用于接收返回结果
      

  3.   

    1#己经给出答案了!DECLARE
      CUR SYS_REFCURSOR;
    BEGIN
      CYRY_SEARCHBYINFO(CUR, '', '', '', '', '', '', '', '', '', '');
      。
    END;
      

  4.   

    end上面的是什么意思?这里写什么?
      

  5.   

    你用的SQL Developer工具里应该有存储测试,在左边的框了选中你的存储过程点右键在点test;就可以根据1楼的改了
      

  6.   

    out参数是只读参数,其值由过程内部通过参数形式传到外部,此类型参数定义时建议放到过程参数最后