p_rc是out型,意思是输出结果,用来返回值的,作用相当于function的return
你赋值了也没用,怎么用我也还在研究,今天就搞包

解决方案 »

  1.   

    嗯,如果外面的程序要调用该PROCEDURE,是不是先在外部的程序中定义一个类似resultset的变量传给p_rc就可以了?
       如果我一个包中有许多类似的procedure,那么在包头中定义很多ref cursor,然后在package body把procedure的返回集赋给相应的ref cursor,这样可不可以阿?还是每个procedure
    对应一个包呢?
      

  2.   

    如果外面的程序要调用该PROCEDURE,是不是先在外部的程序中定义一个类似resultset的变量传给p_rc就可以了?
    -------------------------
    这样是可以的,不用给他赋值
    有许多的procedure,放在一个包中即可
      

  3.   

    一个用 JAVA 使用的例子!!CallableStatement call = conn.prepareCall("{?=call pack_handleht.getHtCsfbje(?)}");
    call.registerOutParameter(1,OracleTypes.CURSOR);
    call.setObject (2,hth);
    call.execute();
    ResultSet rstCsfbje =  (ResultSet) call.getObject(1);
      

  4.   

    在delphi里面好象是通过用存储过程控件调用,我没搞定
      

  5.   

    谢谢各位了,我明白了,但是如果在包个定义多个REF CURSOR,会不会造成CURSOR资源很紧张阿
      

  6.   

    我现在已经对每个procedure定义了相应的ref cursor,然后把相关的procedure 放在一个包中,但是当procedure多时,在编译新的procedure就出现了超出打开游标的最大数这个问题,除了可以增加cursor的数量外,有没有别的解决方式,比如在包中只定义一个ref cursor,然后包中的procedure 都使用这个cursor啊????????