存储过程: 
create   or   replace procedure testRs(p_cur   out   sys_refcursor) 
as 
begin 
open   p_cur   for 
select   name   from   mytable; 
end; java调用代码: 
CallableStatement   proc   =   conn.prepareCall("{call   getResult(?)}");   
proc.registerOutParameter(1,   Types.OTHER);   
proc.execute(); -------------------------- 
运行时,报“Types.OTHER”处:java.sql.SQLException:   无效的列类型 
那么“Types.OTHER”处应该用什么替换呢

解决方案 »

  1.   

    你數據庫里面name是什么類型的?
    一般name是varchar型的,這里應該寫的是Types.VARCHAR。
    這要根據你數據庫里面你自己定義的類型來寫的    
      

  2.   

    例子代码:create or replace procedure test(p_cursor OUT SYS_REFCURSOR)
    is
    begin
      open p_cursor FOR 
      select 1 as A from dual 
      union all 
      select 2 as A from dual;
    end test;
    public static void main(String[] args) throws SQLException {

    Connection conn = JdbcConnectionPool.mainConnection();

    CallableStatement stat =conn.prepareCall("{call test(?)}");

    stat.registerOutParameter(1,oracle.jdbc.driver.OracleTypes.CURSOR);

    stat.executeQuery();

    ResultSet rs = (ResultSet)stat.getObject(1);

    while (rs.next()){
    System.out.println(rs.getString(1));
    }

    rs.close();
    stat.close();
    conn.close();
    }
      

  3.   

    谢谢以上几位,特别是hcmsxy