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

Ejecutar PLSQL desde Java

Estas en el tema de Ejecutar PLSQL desde Java en el foro de Java en Foros del Web. Hola amigos foreros: Estoy aprendiendo a programar procedimientos PLSQL en Oracle. El caso es que ya tengo programado alguno y me interesaría poder invocarlos desde ...
  #1 (permalink)  
Antiguo 19/05/2004, 13:46
 
Fecha de Ingreso: noviembre-2002
Mensajes: 65
Antigüedad: 21 años, 6 meses
Puntos: 0
Ejecutar PLSQL desde Java

Hola amigos foreros:
Estoy aprendiendo a programar procedimientos PLSQL en Oracle. El caso es que ya tengo programado alguno y me interesaría poder invocarlos desde mi programa Java y recuperar la respuesta que genere.
Si sabéis cómo puedo hacerlo o algún manual o enlace que me pueda ayudar os estaría muy agradecido por vuestra colaboración.

De todas formas, gracias.
  #2 (permalink)  
Antiguo 25/05/2004, 02:29
 
Fecha de Ingreso: mayo-2004
Mensajes: 10
Antigüedad: 20 años
Puntos: 0
Hola,
Para ejecutar un procedimiento PL/SQL desde java tienes que hacer lo siguiente:


CallableStatement call = conexion.prepareCall ("{ call Nombre_del_procedimiento (?,?,?)}"

El número de ? que tienes que poner debe coincidir con el número de parámetros de entrada y
salida que tiene tu prodecimiento. Por ejemplo, si tienes dos parámetros de entrada y uno de salida
tendrías que poner 3 ?.

Si tu prodecimiento tiene por ejemplo 2 parámetros de entrada tendrás que hacer lo siguiente:
call.setObject(1, new Integer(1));
call.setObject(2, new String("Madrid"));

//Si tu prodedimiento tiene parámetro de salida tienes que hacer lo siguiente
call.registerOutParameter(salida, OracleTypes.CURSOR);

//Para recoger el resultado tienes que poner
ResultSet rs = (ResultSet)call.getObject(3);//El 3 indica la posición del parámetro de salida

Una vez ejecutes la instrucción el resultado siempre lo obtendrás en un ResultSet y ya puedes leer
los datos

Un saludo
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 09:07.