我從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)' –