java调用oracle存储过程返回多条记录(结果集)
游标,类型,嵌套表,存储包,存储过程
?
public void callPrTest() { Long orderId = new Long(6019214); Connection conn = null; ResultSet rs = null; CallableStatement cs = null; try { conn = this.getConnection(); cs = conn.prepareCall("{ call HN_PKG_RES.makeOrderAttrs(?,?) } "); cs.setLong(1, orderId.longValue()); //注册输出类型 cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR); cs.execute(); ResultSet rsResult = (ResultSet) cs.getObject(2); while (rsResult.next()) { System.out.println(new StringBuffer().append(rsResult.getString("CharacterId")) .append("\t").append(rsResult.getString("CharacterName")) .append("\t").append(rsResult.getString("CharacterValue")) .append("\t").append(rsResult.getString("CharacteValueName")) .append("\t").append(rsResult.getString("OldCharacterValue")) .append("\t").append(rsResult.getString("OldCharacteValueName")) ); } } catch (SQLException e) { e.printStackTrace(); } finally { cleanUp(conn, null, null, rs); } } ?
输出:
1 2 3 4 5 6
10000 计费类型 c 付费 null null
10001 付费方式 2 后付费 null null
20000 销售品 2124 总机服务??null null
16005 产品密码 123123 123123 null null
16275 集团短号长度 4 4 null null
16277 话务员轮询方案 1627701 轮寻 null null
16292 集团类型 1629201 省级 null null
我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html