Oracle调用存储过程返回游标结果

Posted 生生卡卡的生生(๑•̀ㅂ•́) ✧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle调用存储过程返回游标结果相关的知识,希望对你有一定的参考价值。

/**

调用Oracle存储过程

*/

public ResultSet queryForAllJSD_NEWEST(final String hpCode, final String id) {

System.out.println("hpCode:"+hpCode+",id:"+id);
ResultSet rs = (ResultSet)this.jdbctemplate.execute("{call pro_querybcb_newest(? , ? ,?)}" , new CallableStatementCallback(){
public Object doInCallableStatement(CallableStatement cs)
throws SQLException, DataAccessException {
cs.setString(1, hpCode) ;
cs.setString(2, id) ;
cs.registerOutParameter(3, oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
return cs.getObject(3);
}
});
return rs;
}

 

/**

处理返回结果

*/

ResultSet rs = dao1.queryForAllJSD_NEWEST(hpCode, id);

try {
  if (rs.next()) {
  ResultSetMetaData rsmd = rs.getMetaData();
  int i = rsmd.getColumnCount();
  System.out.println("i=" + i);
  for (int j = 1; j <= i; j++) {
    map.put(rsmd.getColumnName(j),rs.getString(j) == null ? "" : rs.getString(j));
    }
    }
  } finally {
  if (rs != null) {
    try {
      rs.close();
      } catch (SQLException e) {
  }
}

 

map.put("name", md.get("A4"));
map.put("idno", md.get("A7"));
map.put("Indate", md.get("A16"));
map.put("outdate", md.get("A17"));
map.put("hosno", md.get("A15"));
map.put("sick", md.get("A24"));

以上是关于Oracle调用存储过程返回游标结果的主要内容,如果未能解决你的问题,请参考以下文章

oracle存储过程返回游标,取值报错

oracle存储过程 中把临时表数据 返回结果集

MySql数据库的存储过程能返回游标么?

Oracle 存储过程调用返回游标的另一个存储过程。

如何调用返回引用游标的Oracle存储过程

Oracle PL SQL:比较两个存储过程返回的引用游标结果