Boa tarde, tenho 2 selects, o primeiro traz 2 ids, e o while vai rodar o laço por duas vezes…
Até ai tudo bem…
Vou colocar o código abaixo para facilitar:
String sqlMeters = “select oid_meter from rs_meter where oid_uc = ? and (oid_type_meter = 2 or oid_type_meter = 3)”; PreparedStatement stmtMeters = conn.prepareStatement(sqlMeters); stmtMeters.setLong(1, idUc); ResultSet rsMeters = stmtMeters.executeQuery();PreparedStatement stmt = null; ResultSet rs = null; while(rsMeters.next()) { String sql = "select pck_leitura.get_max(?, ?, ?, ?, ?, ?, ?+30, 30) as leitura from dual"; stmt = conn.prepareStatement(sql); stmt.setLong(1, idSystem); stmt.setLong(2, idUc); stmt.setString(3, rsMeters.getString("oid_meter")); stmt.setDouble(4, mConstant); stmt.setLong(5, mConcentrator); stmt.setLong(6, mPort); stmt.setTimestamp(7, dtEnd); rs = stmt.executeQuery(); if(rs.next()) { try { String strLeitura = rs.getString("leitura"); if(strLeitura.contains("|")) { answer.add("consumption", since); String[] leituraTokens = strLeitura.split("\\|"); SimpleDateFormat sdf = new SimpleDateFormat("ddMMyyyyHHmmss"); Date dt = sdf.parse(leituraTokens[0]); double value = DecimalFormat.getInstance(Locale.ENGLISH).parse(leituraTokens[1]).doubleValue(); addField(since, "date_read", dt); addField(since, "read_value", value); addField(since, "consumption", value - read0); tariffName = billRS.getString("NAME_TARIFF"); addField(since, "tariff_name", tariffName); double actualConsumption = value - read0; projection = getProjection(since, dtEnd, dt, actualConsumption) + projection; stmt.close(); rs.close(); stmt = null; rs = null; } } catch (Exception e) { e.printStackTrace(); } } } stmtMeters.close(); rsMeters.close();
A package no banco deveria trazer um valor para o id1 para a variavel String[] leituraTokens = strLeitura.split("|"); e outro valor para o segundo id do laço porém ele trazer o mesmo valor para os dois…
Conferi os parametros que estão sendo passados e estão corretos… no segundo laço vem um novo
stmt.setString(3, rsMeters.getString(“oid_meter”)) e deveria trazer outro valor no String[] leituraTokens = strLeitura.split("|");…
Minha dúvida é, isso acontece por não estar finalizando a package?
Pq esta acontecendo isso?
Obrigado!
