Procedimiento almacenado desde java

Nuria
20 de Abril del 2005
Alguien sabe porque al ejecurar con JDBC un procedimiento almacenado de Oracle se me quedan abiertos los cursores de la bd, no se cierran!! ¿Como podría solucinarlo? Es que al cabo del tiempo me acaba saltando un ORA:2000(Demasiados cursores abiertos) Por ejemplo:

java.sql.CallableStatement cs=conx.prepareCall("{call P_REGISTRO(?,?,?)}");
cs.setString(1,param1);
cs.setString(2,param2);
cs.registerOutParameter(3,java.sql.Types.VARCHAR);cs.execute();
String sResultado = cs.getString(3);
cs.close()

Muchas gracias


paco
20 de Abril del 2005
¿te ocurre la primera vez que lo ejecutas?

Deberias de revisar una variable que hay a nivel de base de datos que max_open_cursors.

Laura
20 de Abril del 2005
Después de cs.close() yo uso la instrucción de cs=null; prueba a ver si te sirve ;)