Bom dia Caros, gostaria de ajuda de vocês, estou com o seguinte problema criei um type no postgresql e quero retornar este type para o java quando eu chamar a function que retorna o type
só que o problema é que dá uma exceção dizendo que " PSQLException: Uma função foi executada com um número inválido de parâmetros ", mas se eu adiciono outro parâmetro gera
outra exceção " PSQLException: O índice da coluna está fora do intervalo: 2, número de colunas: 1. "
CREATE OR REPLACE FUNCTION fc_analizador_rede(idplataforma integer) RETURNS tp_analisador AS
$BODY$
DECLARE
analisador datafaz.tp_analisador%ROWTYPE;
BEGIN
SELECT count(*) FROM dispositivo where id_rac = 2 AND id_protetor > 0 group by id_protetor INTO analisador.nun_protetor;
SELECT count(*) FROM rac INNER JOIN dispositivo ON rac.id = dispositivo.id_rac where rac.id = idplataforma INTO analisador.quant_dispositivos;
SELECT count(*) FROM log_alerta INNER JOIN dispositivo ON dispositivo.id_rac = idplataforma AND tipo = 1 AND log_alerta.data_registro > '11/01/2012 00:00:00' INTO analisador.erro_conectividade;
SELECT count(*) FROM log_alerta INNER JOIN dispositivo ON dispositivo.id = log_alerta.id_objeto AND dispositivo.id_rac = idplataforma AND dispositivo.id_tipo_dispositivo = 18 AND
(log_alerta.tipo = 3 OR log_alerta.tipo = 4) AND log_alerta.data_registro > '2011/01/10 00:00:00' INTO analisador.num_sobrecarga;
analisador.controlador:= 'ID 01';
analisador.estabilidade_rede:= '20%';
analisador.uso_rede:= '10%';
RETURN analisador;
END;
public List<Analyzer> findAllAnalyzer(int idCompany){
try {
List<Rac> racLsit = BufferFinder.findAllRacsOnBufferByCompany(Controller.getInstance(), idCompany);
for (Rac rac : racLsit) {
callableStatement = getConnection().prepareCall("{call fc_analizador_rede(?)}");
callableStatement.setInt(1, rac.getId());
callableStatement.registerOutParameter(1, Types.OTHER);
callableStatement.execute();
ResultSet result = (ResultSet) callableStatement.getObject(1);
while(result.next()) {
analyzerBean.setNumFiltros(callableStatement.getInt("nun_protetor"));
analyzerBean.setSobrecargaProtetor(callableStatement.getInt("num_sobrecarga"));
}
analyzeList.add(analyzerBean);
}
this.connection.close();
}catch(Exception exc){
exc.printStackTrace();
}
return analyzeList;
}
Alguém teria algum ideia do que pode ser ??
Abs.