存储过程前面部分:
create or replace procedure sp_usr_rec_det(vi_date in varchar2,
                                           vo_result_msg out varchar2,
                                           oc_result out sys_refcursor) is



后面的功能就不贴上来了。主要是给大家看看传入参数和输出参数。输出的是一个游标。返回想要查询的字段数据。
现在需要在命令窗口执行这个存储过程,比如:execute sp_usr_rec_det('20110627').但是不行啊。报错。传入参数错误
,这个要怎么传呀!!!!

解决方案 »

  1.   


    var vo_result_msg varchar2(20);
    var oc_result sys_refcursor;
    execute('20110627',:vo_result_msg ,:oc_result );
      

  2.   


    其实我是用工具去调用这个存储过程的。但工具生成的sql语句只有Execute procedure SP_USR_REC_DET('20110627');没有定义那么多参数
      

  3.   


    --你可以传入null,但是你不能不定义啊
    --不管你是用object browser 还是sqlplus dev执行,肯定都是需要传入参数的
    --sample
    create or replace procedure test(
    vi_date in varchar2,
    vo_result_msg out varchar2,
    ...
    )
    is
    begin
         DBMS_OUTPUT.PUT_LINE('SUCCESS');
    END;----------------------------
    --执行(pl/sql dev)
    begin
      --call the procedure
      test(vi_date=>:vi_date, vo_result_msg=>:vo_result_msg,...);
    end;vi_date                    String  '20110913'
    vo_result_msg        String  -------------执行结果
    success