【问题标题】:Retrieve array list from Oracle stored procedure - Java从 Oracle 存储过程中检索数组列表 - Java
【发布时间】:2017-03-05 12:54:57
【问题描述】:

我正在尝试从 Oracle SQL 中的存储过程中检索对象列表。你知道如何从下面的代码中获取一个 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);

在地图对象中,我有键值对列表。 检查下面的图片:

【问题讨论】:

    标签: java oracle stored-procedures arraylist


    【解决方案1】:

    我不确定这是最好的解决方案,但它对我有用。我会尝试找到更好的东西。如果您有任何其他建议,请随时提出!

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-30
      • 2015-06-11
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-27
      相关资源
      最近更新 更多