Tengo una Function en Postgres que me retorna dos Cursores pero no se como recuperar los valores que me devuelven desde la aplicacion en java.
Alguien me podria ayudar con eso???
Tengo una Function en Postgres que me retorna dos Cursores pero no se como recuperar los valores que me devuelven desde la aplicacion en java.
Alguien me podria ayudar con eso???
Posta sua função ai para que possamos ajudá-lo.
Não sei até onde você consegiu fazer.
Lo que tengo es esta funcion:
CREATE FUNCTION _getdatos_persona_cursor (id1 integer, id2 integer) RETURNS SETOF refcursor AS
declare
ref1 refcursor;
ref2 refcursor;
begin
open ref1 for select * from persona where persona.id = $1;
return next ref1;
open ref2 for select * from persona where persona.id = $2;
return next ref2;
return;
end
Ahora en la aplicacion java cuando quiero obtener los valores de ref1 y ref2 y lo que me retorna es:
org.postgresql.jdbc3.Jdbc3ResultSet@125844f
org.postgresql.jdbc3.Jdbc3ResultSet@49d67c
CrearConeccion();
con.setAutoCommit(false);
pst = con.prepareStatement(“Select * from _getdatos_persona_cursor(?,?)”, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
pst.setObject(1, id1);
pst.setObject(2, id2);
pst.execute();
rs = pst.getResultSet();
while(rs.next()){
System.out.println(rs.getObject(1));
}
CerrarConeccion();
Me pudieran decir que hago mal aqui…
Para chamar uma função do postgresql usando java você precisa de um CallableStatement, não de um PreparedStatement.
Pesquise sobre CallableStatement.
si pero si yo uso un CallableStatement no me retorna ningun ResultSet, cuando una funcion me retorna mas de un valor no he podido obtener
ResultSet para esta, solo me retorna null.
Melhor seria vc postar parte do código para quem sabe darmos uma olhada; Agore se seu programa java estiver usando JDBC e vc esta querendo executar uma query, recuperar os valores e etc… podes começar por aqui.
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/ResultSet.html