Retorno de store procedure no postgres

0 respostas
I

ae galera,

to com o seguinte problema

tenho a seguinte procedure no postgres 8:

CREATE OR REPLACE FUNCTION f_ver_cliente(int4)
  RETURNS SETOF cliente AS
'SELECT * FROM cliente WHERE cod_cli = $1;'
  LANGUAGE 'sql' VOLATILE;
ALTER FUNCTION f_ver_cliente(int4) OWNER TO postgres;

e tenho a seguinte chamada de uma store procedure do postgres que retorna um ResultSet

CallableStatement proc = conn.prepareCall( "{ ? = call f_ver_cliente(?) }");
			proc.registerOutParameter(1, Types.OTHER);
			proc.setInt(2, 5);
			proc.execute();
			
			ResultSet rs = (ResultSet) proc.getObject(1);

daí ele da o seguinte erro:

Erro na listagem de cliente: Uma Função foi executada e o retorno foi do tipo java.sql.Types=4 contudo tipo java.sql.Types=1111 foi registrado.

daí eu mudei pra isso:

CallableStatement proc = conn.prepareCall( "{ ? = call f_ver_cliente(?) }");
			[b]proc.registerOutParameter(1, Types.INTEGER);[/b]
			proc.setInt(2, 5);
			proc.execute();
			
			[b]Integer i = (Integer ) proc.getObject(1);[/b]
                        System.out.println(i);

e ele imprime no System.out no valor que eu passei como o parametro e que neste exemplo é 5.
quando era pra ele retornar o resultset com as informaçoes do cliente.
alguem tem alguma noção do que pode ser?

é urgente, tenho que entregar isso segunda-feira. qualquer ajuda é bem vinda.

vlw!

Criado 8 de julho de 2005
Respostas 0
Participantes 1