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

Java + postgresql + callablestatement

Estas en el tema de Java + postgresql + callablestatement en el foro de Java en Foros del Web. Alguien por favor ayúdeme que tengo el siguiente problema al llamar a un procedimiento almacenado en postgresql desde java. Me lanza el siguente error : ...
  #1 (permalink)  
Antiguo 13/04/2015, 18:59
 
Fecha de Ingreso: agosto-2009
Mensajes: 25
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Java + postgresql + callablestatement

Alguien por favor ayúdeme que tengo el siguiente problema al llamar a un procedimiento almacenado en postgresql desde java. Me lanza el siguente error :

CLASE: ControlReligion
METODO: ingresarCliente(Integer,String) ERROR:org.postgresql.util.PSQLException: ERROR: no existe la función insertareligion(integer, character varying)
Hint: Ninguna función coincide en el nombre y tipos de argumentos. Puede ser necesario agregar conversión explícita de tipos.
Position: 15


CODIGO EN POSTGRESQL

CREATE OR REPLACE FUNCTION insertareligion(
fnum_rel integer,
fnom_rel character varying)
RETURNS boolean AS
$BODY$
BEGIN
INSERT INTO "religion" ("num_rel","nom_rel") VALUES (fnum_rel,fnom_rel);
RETURN true;
EXCEPTION
WHEN integrity_constraint_violation THEN
RETURN false;

END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

CODIGO EN JAVA

public class ControlReligion
{
private CallableStatement sentencia = null;
public void ingresarCliente(Integer numRel, String nomRel) {
try {
this.sentencia = Base_Datos.conexion.prepareCall("{ ? = call insertareligion(?::integer,?)}");
this.sentencia.registerOutParameter(1, Types.BOOLEAN);
this.sentencia.setInt(2, 200501);
this.sentencia.setString(3, "CATOLICO");
boolean noProblema = sentencia.execute();
System.out.println(noProblema);
sentencia.close();
} catch (SQLException e) {
System.out.println("CLASE: ControlReligion \nMETODO: ingresarCliente(Integer,String) ERROR:" + e);
}
}
}
  #2 (permalink)  
Antiguo 13/04/2015, 19:41
 
Fecha de Ingreso: marzo-2015
Mensajes: 45
Antigüedad: 9 años, 1 mes
Puntos: 2
Respuesta: Java + postgresql + callablestatement

Hola...

Te recomiendo que cada que subas código uses el Highlight...

Código Java:
Ver original
  1. public class ControlReligion{
  2.     private CallableStatement sentencia = null;
  3.     public void ingresarCliente(Integer numRel, String nomRel) {
  4.         try {
  5.             sentencia = Base_Datos.conexion.prepareCall("{ ? = call insertareligion(?,?)}");
  6.             sentencia.setInt(2, 200501);
  7.             sentencia.setString(3, "CATOLICO");
  8.             sentencia.registerOutParameter(1, Types.BOOLEAN);
  9.             boolean noProblema = sentencia.execute();
  10.             if (noProblema){
  11.                 System.out.println("Se ejecuto correctamente");
  12.             }
  13.             sentencia.close();
  14.         } catch (SQLException e) {
  15.             System.out.println("CLASE: ControlReligion \nMETODO: ingresarCliente(Integer,String) ERROR:" + e);
  16.         }
  17.     }
  18. }

Intenta con ello, únicamente cambie la forma en que pasas los parámetros cuando llamas la función.

Cualquier duda y/o comentario, aquí estamos. Suerte!

Etiquetas: clase, postgresql, sql, string
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:27.