java 中调用oracle中返回游标类型的存储过程
public String getreducestate(String reduceid) {
String temp = "";
StringBuffer buffer = new StringBuffer();
Session session = getSession();
ResultSet rs = null;
try {?
????? Connection conn = session.connection();?
??????CallableStatement call = null;?
??????call = conn.prepareCall("{call PK_TASK_QUERY.PRO_TASK_PERCENT_QRUERY(?,?)}");?
????? call.setString(1, reduceid); //传入参数
?? ?? call.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);//返回参数
?? ?? call.execute();
??? ? rs = (ResultSet) call.getObject(2);
????? while (rs.next()) {
????? buffer.append(rs.getString(1) + ","); // 子任务id
????? buffer.append(rs.getDouble(2) + ","); // 累加的百分比
???? ?buffer.append(rs.getDate(3) + "#"); // 时间
?? }
??? call.close();
} catch (Exception ce) {
? ce.printStackTrace();
}
temp = buffer.toString();
return temp;
}
?
我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html