我现在要用JDBC来链接数据库,用的是java语言,现在要实现的是比如oracle存储过程返回的是个结果集,如果在执行存储过程的时候有参数存入,那只要执行这个存储过程就能得到结果集,但是现在在执行存储过程的时候没法提供参数,那要怎么实现在这个情况下得到存储过程的执行结果呢(存储过程的参数个数和类型可以知道)。跪求高手指点。谢谢!!

解决方案 »

  1.   


    对于  out 的类型的游标类型参数  你在调用的时候必须声明个游标类型的参数对于in 你可以弄个default 的值
      

  2.   

    那这个default的值是要在存储过程里写的啊,但是现在存储过程我们无法控制能不能设置默认值。
      

  3.   

    --在定义存储过程的参数和类型时候给定一个默认值 default
    --比如:
    create or replace procedure pro(v_co   in   varchar2,
                                    v_dat  in   date   default sysdate   --此参数就是可以不输入的,默认为系统当前时间
                                    rs     out  sys_refcursor    --返回的结果集
                                    )
    is
    ...
    begin
    ...
    end;
      

  4.   

    --在定义存储过程的参数和类型时候给定一个默认值 default
    --比如:
    create or replace procedure pro3213(v_co   in   varchar2,
                                        v_dat  in   date   default sysdate ,  --此参数就是可以不输入的,默认为系统当前时间
                                             rs     out  sys_refcursor    --返回的结果集
                                    )
    is
      --...
    begin
          --...
          open rs for select * from emp;
    end;
    --如果你存储过程执行的时候无法控制能不能设置默认值
    --那你在Java程序端调用此过程的时候给定该参数一个默认值就可以了啊
    --这样就不需要在过程中定义参数的时候给定default值
      

  5.   


    请教:那我在java程序中怎么给存储过程中没设置默认值的参数传入一个合适的值呢?