lunes, 29 de junio de 2009

Llamar a una Función PL/SQL desde Java

java.jpg




Qué es una función


En PL/SQL existen procedimientos y funciones. La diferencia está en que la función debe devolver un valor al bloque PL/SQL que lo llamó. Sin embargo un procedimiento puede devolver múltiples parámetros al bloque.


Llamada a la función


Veamos cómo llamar a una función desde java. Tenemos una función que nos devuelve el número de productos del tipo que le pasamos como parámetro. Ésta es la cabecera:


FUNCTION NUMPRODUCTOS (TIPO IN VARCHAR2) RETURN NUMBER AS INTEGER;


Tiene un parámetro de entrada de tipo VARCHAR2, que correspondería a un String en Java. El parámetro de salida es un entero.


Primero creamos un objeto Connection que será la conexión con la base de datos. Obviamente tendremos que poner como parámetros la cadena de conexión, el usuario y la contraseña.




Connection conexion = DriverManager.getConnection(conexion, usuario, contraseña)


Luego vendría la llamada a la función:




CallableStatement sentencia=conexion.prepareCall("{?=call numproductos(?)}");//Declarar la sentencia.
sentencia.registerOutParameter(1, Types.VARCHAR); //Registrar el parámetro de entrada
sentencia.setString(2,cliente1); //Registrar el parámetro de salida
sentencia.executeQuery(); //Realizar la llamada
numero=sentencia.getInt(1); //Recoger el parámetro de salida
System.out.println(numero);




4 Comentarios:

Unknown dijo...

Perfecto!!!

Felipe Martínez D. dijo...

Gracias.

Un saludo.

Italia López dijo...

excelente información, gracias.
pero tengo una duda, como se recibe cuando llamas a una función con valores tabla?????

Felipe Martínez D. dijo...

Hola Italia. No entiendo bien a lo que te refieres con valores tablas. Muéstrame un ejemplo.

Publicar un comentario

Felinfo: Java, Linux, Virtualización. Open Source.  ©Template Blogger Green by Dicas Blogger .

TOPO