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!