2017-03-05 17 views
1

Oracle SQLのストアドプロシージャからオブジェクトのリストを取得しようとしています。下のコードからArraylistを入手するにはどうすればいいですか?Oracleストアドプロシージャから配列リストを取得する - Java

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); 

私はキーと値のペアのリストを持っています。以下 チェック画像: enter image description here

答えて

0

私はそれが最善の解決策であるかわからないが、それは私のために動作します。私は何か良いものを見つけようとします。あなたは他の提案があれば気軽に!

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()); 
} 
関連する問題