[英]Retrieve array list from Oracle stored procedure - Java
I am trying to retrieve a list of objects from a Stored Procedure in Oracle SQL. 我试图从Oracle SQL中的存储过程中检索对象列表。 May you know how can I get an Arraylist from the code below? 您知道我怎么能从下面的代码中获得一个Arraylist?
ArrayList<String> strings = new ArrayList<>();
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(dataSource).withProcedureName("P_ROUTES");
SqlParameterSource in = new MapSqlParameterSource()
.addValue("V_FIXED_INT", period)
.addValue("V_CARRIER", carrier)
.addValue("V_DATE_RANGE_START", dateRangeStart)
.addValue("V_DATE_RANGE_END", dateRangeEnd);
Map<String, Object> out = jdbcCall.execute(in);
ArrayList obj = (ArrayList) out.get("RET_CURSOR");
Map<String, Object> map = (Map<String, Object>) obj.get(0);
In map object I have the list of key - value pairs. 在map对象中,我有键 - 值对列表。 Check image below: 检查下图:
I am not sure that is the best solution but it works for me. 我不确定这是最好的解决方案,但它对我有用。 I ll try to find something better. 我会尝试找到更好的东西。 If you have any other suggestion feel free! 如果您有任何其他建议,请随意!
Map<String, Object> out = jdbcCall.execute(in);
ArrayList obj = (ArrayList) out.get("RET_CURSOR");
logger.info("Length of retrieved routes from database = " + obj.size());
for (Object o : obj) {
Map<String, Object> map = (Map<String, Object>) o;
for (Map.Entry<String, Object> entry : map.entrySet())
routes.add(entry.getValue().toString());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.