Oracle存储过程:
create or replace procedure P_Sel_TopCount2(in_top    in number,
                                           out_count out number,
                                           cur_out_1 out sys_refcursor,
                                           cur_out_2 out sys_refcursor) is
--查询指定记录条数的数据,并返回总共记录数,返回多个数据集
begin
SELECT COUNT(*) into out_count FROM userinfo;
open cur_out_1 for
    SELECT * FROM userinfo where id < in_top;
open cur_out_2 for
    SELECT * FROM userinfo where id < 5;
end P_Sel_TopCount2;

 

Java调用


简单地写一个Java Class.


public void openCursor(){ 
 

      Connection conn = null; 

 

      ResultSet rs = null; 

 

      CallableStatement stmt = null; 

 

      String sql = “{? = call PKG_HOTLINE.getHotline()}“; 

 

      try{ 

 

         conn = getConnection(); 

 

         stmt = conn.prepareCall(sql); 

 

         stmt.registerOutParameter(1,OracleTypes.CURSOR); 

 

         stmt.registerOutParameter(2,OracleTypes.CURSOR); 

 

         stmt.execute(); 

 

         rs = ((OracleCallableStatement)stmt).getCursor(1); 

 

         while(rs.next()){ 

 

             String country = rs.getString(1); 

 

             String pno = rs.getString(2); 

 

             System.out.println(“country:“+country+“|pno:”+pno); 

 

         } 

 

          while(rs.next()){ 
 
 
 

              String country = rs.getString(1); 
 
 
 

              String pno = rs.getString(2); 
 
 
 

              System.out.println(“country:“+country+“|pno:”+pno); 
 
 
 

          } 
 
 

      } 

 

      catch(Exception ex) 

 

      { 

 

          ex.printStackTrace(); 

 

      } 

 

      finally 

 

      { 

 

          closeConnection(conn,rs,stmt); 

 

      } 

 

  }