如果Java操作的存储过程返回集合的话和返回字符串操作方式有稍微的不一样,如下代码:
CallableStatement cs = conn.prepareCall("{call myproc(?)}");
cs.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
boolean bool = cs.execute();
resultSet = (ResultSet) cs.getObject(1);
注册输出数据类型的时候要根据数据库的类型而有所不同,如上我操作的就是Oracle数据库
获取返回值用的是 getObject()方法,然后强制转换成ResultSet
需要注意的是存储过程的参数索引是从 1 开始的。