Foros del Web » Programación para mayores de 30 ;) » Java »

Llamar funcion de postgresql desde java

Estas en el tema de Llamar funcion de postgresql desde java en el foro de Java en Foros del Web. Hola amigos... He realizado la siguiente función en postgresql: CREATE OR REPLACE FUNCTION obtenercontrato() RETURNS smallint AS $BODY$ DECLARE contrato smallint; BEGIN SELECT MAX(sec_con_clte) INTO ...
  #1 (permalink)  
Antiguo 15/08/2009, 15:56
 
Fecha de Ingreso: agosto-2009
Mensajes: 25
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Llamar funcion de postgresql desde java

Hola amigos...

He realizado la siguiente función en postgresql:

CREATE OR REPLACE FUNCTION obtenercontrato()
RETURNS smallint AS
$BODY$ DECLARE
contrato smallint;
BEGIN
SELECT MAX(sec_con_clte) INTO contrato FROM cliente;
IF contrato > o THEN
RETURN contrato+1;
ELSE
RETURN 1;
ENDIF;
END;

Ahora deseo saber como llamar la función desde JAVA, Ya he establecido conexion con la base de datos y he hecho SELECT desde JAVA sencillos pero desconozco como llamar funciones. Alguien me puede ayudar porfavor.
  #2 (permalink)  
Antiguo 15/08/2009, 17:12
 
Fecha de Ingreso: julio-2009
Mensajes: 64
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Llamar funcion de postgresql desde java

No estoy muy seguro pero podría ser:

SELECT obtenercontrato() AS oc;

Y por si te sirve de ayuda (es la tercera vez que pongo el enlace): Conectarse desde Java a MySQL mediante JDBC
  #3 (permalink)  
Antiguo 15/08/2009, 18:07
Avatar de cptanalatriste  
Fecha de Ingreso: octubre-2008
Ubicación: Lima, Perú
Mensajes: 118
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Llamar funcion de postgresql desde java

Es necesario usar la clase CallableStatement de JDBC. Te quedaría algo así:


con.setAutoCommit(false);
CallableStatement upperProc = con.prepareCall("{ ? = call upper( ? ) }");
upperProc.registerOutParameter(1, Types.VARCHAR);
upperProc.setString(2, "lowercase to uppercase");
upperProc.execute();
String upperCased = upperProc.getString(1);
upperProc.close();

Puedes encontrar más información en:
http://www.postgresql.org/docs/7.4/i...-callproc.html

Espero sea de ayuda,
__________________
Carlos G. Gavidia
Sun Certified Professional
IBM Certified Solution Designer
http://certified-es.blogspot.com/
  #4 (permalink)  
Antiguo 16/08/2009, 11:50
 
Fecha de Ingreso: agosto-2009
Mensajes: 25
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Llamar funcion de postgresql desde java

Muchas Gracias por su intervención.

Y lo he realizado de la siguiente manera y todo anda bien.

sentencia = Base_Datos.conexion.prepareCall("{call obtenercontrato()}");
resultadoSelect = sentencia.executeQuery();
resultadoSelect.next();//Para acceder a la fila siguiente del resultado
contrato = resultadoSelect.getShort(1);
sentencia.close();
resultadoSelect.close();
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:15.