From: | Patricio Muñoz <patricio(dot)munoz(at)cmet(dot)net> |
---|---|
To: | Leo Martin Orfei <orfeileo(at)yahoo(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: funcion que retorne un resultset en java |
Date: | 2004-09-06 18:35:26 |
Message-ID: | 413CADEE.6050102@cmet.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Leo Martin Orfei escribió:
> Hola.
>
> Tengo un problema con las funciones de postgresql.
> necesito hacer una funcion que me retorne un resulset
> y poder recorrerlo desde java.
> La funcion es bastante compleja pero el problema es
> devolver el resultset.
> supongamos la siguiente funcion:
>
> create function test() returns catalog.refcursor as'
> declare aux refcursor;
> BEGIN
> OPEN aux FOR SELECT nombre, direccion FROM tabla;
> RETURN aux;
> END;
> 'LANGUAGE 'plpgsql';
>
>
> y el java:
>
> CallableStatement cs = null;
> ResultSet rs = null;
> cs = con.prepareCall("{ ? = call test()}");
> cs.registerOutParameter(1, java.sql.Types.OTHER);
> rs = cs.executeQuery();
> rs.next();
> System.out.println("nombre: " +rs.getString(1));
>
> pero me da el siguiente error:
>
> cursor "<unnamed portal 1>" does not exist
>
> Tambien probe esto:
>
> Statement s = null;
> rs = s.executeQuery("select test()");
> rs.next();
> System.out.println("nombre: " +rs.getString(1));
>
> y si bien no falla, me da el siguiente resultado:
> nombre: <unnamed portal 1>
>
> Alguien me puede ayudar con esto?
>
> Gracias.
>
Prueba con
Statement s = pSQL.createStatement();
ResultSet states = s.executeQuery("select test();");
while (states.next())
{
System.out.println(states.getString("campo"));
}
From | Date | Subject | |
---|---|---|---|
Next Message | julio | 2004-09-06 21:06:36 | Consulta |
Previous Message | Josué Maldonado | 2004-09-06 18:33:06 | Re: Desempeño PostgreSQL |