CallableStatement exceção com type return postgresql

1 resposta
R

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.

1 Resposta

R

Opa e ai galera, ninguém tem algum ideia do pode ser que estou fazendo de errado ???

Abs.

Criado 16 de janeiro de 2012
Ultima resposta 18 de jan. de 2012
Respostas 1
Participantes 1