JSP中如何利用Oracle返回的游标啊?

解决方案 »

  1.   

    和jdbc一样用把,没什么特别的
      

  2.   

    必须在包里面定义返回的游标才能在java里调用(包里面还要定义游标为引用类型)
      

  3.   

    public ResultSet executeQueryProc() throws SQLException {
            ResultSet rs = null;
            cstmt.registerOutParameter(1, OracleTypes.CURSOR);
            cstmt.execute();
            rs = ((OracleCallableStatement) cstmt).getCursor(1);
            return rs;
        }
    我写了这样一个方法,这个方法有一个问题,就是如果此时执行的查询结果为空时,返回游标为空,getCursor(1)这个方法就会报异常,谁能解决?
      

  4.   

    先在包中定义一个反回游标的存储过程,参考:
    --------------------------------------------------------------------------------
    Oracle中包的创建与使现 
    时间:2006-03-01 14:12:30; 来自:sinnt;点数:109 
    http://www.sinnt.com/dba/content.php?id=35  java调反此包中返回数据集的存储过程 参考:
    --------------------------------------------------------------------------------
    java调反回数据集的存储过程 
    时间:2006-03-01 18:50:38; 来自:sinnt;点数:103 
    http://www.sinnt.com/dba/content.php?id=50  
     
      

  5.   

    import org.apache.commons.dbcp.DelegatingResultSet;
    ......Statement stmt = conn.createStatement();
    DelegatingResultSet rs   = (DelegatingResultSet)stmt.executeQuery(sql);
    DelegatingResultSet cur_rs = (DelegatingResultSet) rs.getCursor(cursorname);
    while(cur_rs .next()){
      ......
    }
      

  6.   

    getCursor这个方法,在存储过程的结果游标无查询结果时,会报错