我从Java运行时环境中调用Oracle存储过程的难度最大。我正在调用的存储过程有2个参数1进1出。下面是我如何调用存储过程...你如何从Oracle ref_cursor从Java中的存储过程获取结果
ds = (DataSource)initialContext.lookup("JDBC/EPCD13DB");
conn = ds.getConnection();
callableStatement = conn.prepareCall(storedProcCall);
callableStatement.setString(1, input1);
callableStatement.registerOutParameter(2, OracleTypes.CURSOR);
callableStatement.execute();//(ResultSet) callableStatement.getObject(1);
ResultSet rs = callableStatement.getResultSet();
while(rs.next()){
Provider tempProv = new Provider();
tempProv.setResourceId(rs.getLong("res_id"));
tempProv.setFirstName(rs.getString("First_Name"));
tempProv.setLastName(rs.getString("Last_Name"));
tempProv.setMiddleName(rs.getString("Middle_Name"));
ObjList.add(tempProv);
}
rs.close();
为什么getObject(2)?我正在尝试getObject(1)。这是要求第二个参数吗? – SoftwareSavant
@DmainEvent因为OUT参数位于第二个位置:'registerOutParameter(2,OracleTypes.CURSOR)' –