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
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 |