Oracle - Demasiados cursores abiertos

 
Vista:

Demasiados cursores abiertos

Publicado por Mikel (14 intervenciones) el 23/01/2004 13:20:11
Estoy realizando una pagina web mediante ASP.Net.

En la misma tengo que realizar una consulta que cruza bastantes tablas (cada una de ellas con muchos registros). Esta SELECT tarda mucho en ejecutarse por lo que he decidido deshacerla en dos SELECT distintas. En la primera selecciono dos campos los cuales los guardo en un array y posteriormente con cada uno de los registros del array ejecuto la segunda SELECT para buscar los datos de cada uno de ellos. De esta segunda manera funciona mucho más rapido.

El problema lo detecto cuando los registros seleccionados son bastantes y me da el error de "Demasiados cursores abiertos". Parece que se queda algo abierto en cada una de las segundas consultas que realizo.

No se si el problema será de Oracle o del ASP.Net, ya que he puesto una traza para detectar el estado de la conexión después de cada una de las consultas y en principio la conexión de ASP.Net está cerrada.

¿Alguien sabe que puede estar ocurriendo?

Gracias por adelantado

Mikel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Solucionado

Publicado por Mikel (14 intervenciones) el 26/01/2004 13:17:35
Ya he solucionado el problema. Gracias de todas formas.

Mikel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda

Publicado por wendy montes (1 intervención) el 12/10/2017 23:23:47
Como lo solucionaste, tengo el mismo problema :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Elvis
Val: 209
Plata
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Demasiados cursores abiertos

Publicado por Elvis (101 intervenciones) el 13/10/2017 18:08:55
Estimado Mikel, por lo general si oracle te da un error te devuelve un ORA - ]Oracle si valida que un cursor quede cerrado y no le hace un close, si usas la clausula OPEN obligatoriamente debes de hacer un CLOSE salvo qu lo hagas con un FOR Ej.

1
2
3
4
5
6
FOR c1 in LOOP
 IF c2%ISOPEN THEN CLOSE c2; END IF;--esto por si acaso quedo algo abierto o se se dispara un EXCPETION que te deja abierto el cursor
  OPEN c2;
  FECHT INTO Lr_Reg2;
  CLOSE c2
END LOOP

Nota: Si tienes un bloque exception te recomiendo que cierres alli el cursor tambien.

Alguna duda favor indicarla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar