Re: Problema Con Procedimiento Almacenado

From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "Juan Pablo Pizarro Cruz" <jpablo(dot)pizarro(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema Con Procedimiento Almacenado
Date: 2007-01-04 04:18:17
Message-ID: c2d9e70e0701032018r554ec28en9162c1a2446354e8@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 1/3/07, Juan Pablo Pizarro Cruz <jpablo(dot)pizarro(at)gmail(dot)com> wrote:
> Hola lista:
>
> En estos momento estoy trabajando con JSP + PostgreSql y al
> realizar un procedimiento almacenado en la base de datos, no tengo
> ningún problema, pero al utilizarlos en la capa de Persistencia, la
> llamada al procedimiento almacenado no me retorna ningún valor, creo
> que en JAVA la llamada de un procedimiento es distinta por lo que le
> leído en internet, pero los ejemplos que salen sólo son de select sin
> retornar valores.
>
> El procedimiento que estoy haciendo es el siguiente:
>
> CREATE OR REPLACE FUNCTION buscar_empleado("varchar", refcursor)
> RETURNS refcursor AS
> $BODY$BEGIN
> OPEN $2 FOR select * from empleado where rut_empleado=$1;
> return $2;
> END;$BODY$
> LANGUAGE 'plpgsql' VOLATILE;
>
> Este procedimiento lo ejecuto desde el pgadmin III de la siguiente manera:
>
> select buscar_empleado('14.107.720-1', 'jp');
> fetch all in jp;
>
> y eso me retorna lo siguiente:
>
> "14.107.720-1";14107720;"juan pablo
> ";"pizarro";"cruz";1000000
> ;111111111;"avda. playa brava
> 3404";"14.107.720-1";"DESHABILITADO";"jpablo(dot)pizarro(at)gmail(dot)com"
>
> Por lo tanto, el procedimiento almacenado si está funcionando. De
> esta forma lo llamo desde php y python y nunca he tenido ningún
> problema, pero ahora que estoy utilizando Java no se como hacerlo y
> como indique anteriormente no he encontrado ejemplos parecido a lo que
> quiero hacer.
>
> A continuación muestro el código Java de como estoy llamando al
> procedimiento almacenado:
>
> import java.sql.CallableStatement;
>
> public class EmpleadoBD {
>
> public static Vector BuscarEmpleado(String rut) throws SQLException {
> Connection conexion = ConexionBD.conectar();
> CallableStatement cs = conexion.prepareCall("{call
> buscar_empleado('"+rut+"','jp'); fetch all in jp;}");

si estoy entendiendo bien esta parte ejecuta los comandos sql... ahora
lo que no entiendo es porque usas call en vez de select... no he
sabido que postgres soporte call asi que debo entender que eso lo
procesa JSP y lo ha de estar transformando en PERFORM el cual ignora
los resultados de la funcion...

sin embargo, estoy adivinando aqui... yo no uso JSP

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2007-01-04 04:28:00 Re: Problema Con Procedimiento Almacenado
Previous Message Jaime Casanova 2007-01-04 04:12:59 Re: proteger archivo PGPASS.CONF