No vamos a explicar el potencial que tienen los procedimientos
almacenados , solamente mencionaremos que desde JDBC
podemos crear y llamar a ellos , en el siguiente ejemplo vamos
a trabajar con la siguiente base de dato
que ocupa el lenguaje plpgsql;
Desarrollo:
1.- primero tenemos que cargamos el jar de prostgres en nuestro
Desarrollo:
1.- primero tenemos que cargamos el jar de prostgres en nuestro
proyecto de netbeans .
2.- cargar nuestro procedimiento almacenado en la base de dato ,
para lo cual abrimos nuestra base de datos y lo ejecutamos.
2.- cargar nuestro procedimiento almacenado en la base de dato ,
para lo cual abrimos nuestra base de datos y lo ejecutamos.
---------- Procedimiento almacenado ------------------------
CREATE or replace FUNCTION estafunc()
RETURNS INTEGER AS '
DECLARE
cantidad INTEGER := 30;
i integer := 1;
BEGIN
while (i <= 30) loop
RAISE NOTICE ''Cantidad contiene aqui³ %'',i;
i := i + 1;
end loop;
cantidad := 50;
RETURN cantidad;
END;' LANGUAGE 'plpgsql';
-------------------------------------------------------------
3.- lo llamamos desde nuestro codigo
try{
Class.forName("org.postgresql.Driver");
Connection con =
DriverManager.getConnection(
"jdbc:postgresql://localhost/eliminar", "postgres", "1234");
CallableStatement cs = con.prepareCall("{call estafunc()}");
ResultSet rs = cs.executeQuery();
if(rs.next()){
System.out.println("valor"+rs.getInt(1));
}
}catch(Exception e){
System.out.println("fallo conexion ");
e.printStackTrace();
}
try{
Class.forName("org.postgresql.Driver");
Connection con =
DriverManager.getConnection(
"jdbc:postgresql://localhost/eliminar", "postgres", "1234");
CallableStatement cs = con.prepareCall("{call estafunc()}");
ResultSet rs = cs.executeQuery();
if(rs.next()){
System.out.println("valor"+rs.getInt(1));
}
}catch(Exception e){
System.out.println("fallo conexion ");
e.printStackTrace();
}
//////////////////////////////////////////////////
lo importante del codigo es
CallableStatement: que es para ejecutar procedimientos
almacenados en la BD.
CallableStatement: que es para ejecutar procedimientos
almacenados en la BD.
Para mayor informacion existen unos link interesantes
3 comentarios:
muchas gracias por la explicacion...
saludos
Como puedo llamar una funcion que retorna un record de un select me da un error de que se requieren especificaciones de las columnas devueltas
perro maldito te voy arrancar el puto corazon
Publicar un comentario