Problema Con Procedimiento Almacenado

From: "Juan Pablo Pizarro Cruz" <jpablo(dot)pizarro(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Problema Con Procedimiento Almacenado
Date: 2007-01-03 21:12:57
Message-ID: f3833d3c0701031312h4cb0e20cs1467e72b7938d4d5@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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;}");
ResultSet rs = cs.executeQuery();
ResultSetMetaData md = rs.getMetaData();
int columnas = md.getColumnCount();
Vector fila = new Vector(columnas);
while(rs.next ()){
for(int i=1; i<=columnas; i++){
fila.addElement(rs.getObject(i));

}
}
conexion.close();
return fila;
}

El problema es que al imprimir los datos encontrados en el
formulario JSP, no imprime nada.

Estoy utilizando el netbeans 5.5 beta 2, JAVA: 1.5.0_09, VM: 1.5.0_09-b01

Agradecido por su ayuda,
--
Juan Pablo Pizarro Cruz
Ingeniería Civil en Computación e Informática
Universidad Arturo Prat
Iquique - Chile

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message guillermo arias 2007-01-03 22:11:44 backup automático en postgres
Previous Message Romulo Hunter 2007-01-03 20:14:56 Update to 8.2 in openSUSE 10.2