Ver Mensaje Individual
  #10  
Antiguo 18-07-2003
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Reputación: 21
mlara Va por buen camino
Yo pienso, tal como dice Juan R. que no es lógico que el SP se ejecute varias veces, una por cada fila que se deba retornar de acuerdo a la condición en la cláusula WHERE.

Veamos:

Si escribo: SELECT * FROM SP_NAME;

, como se supone hay al menos un SUSPEND dentro del SP, de hecho el SP se "suspende" cuando retorna la primera fila, pero dado que no hay cláusula WHERE entonces estamos seleccionando todas las filas, y para poderse mostrar la siguiente.. y luego la siguiente, por cada fila adicional la ejecución del SP "continúa", pero No se ejecuta de nuevo.

Por otro lado, la "continuación" de la ejecución del SP debe ser completamente independiente de que exista o no una cláusula WHERE en la sentencia SELECT que lo llama.

De otra manera, no es lógico, que por el hecho de haber una clásula WHERE se deba ejecutar de nuevo el procedimiento y al tiempo el mismo retorne la n-ésima fila. Eso no tiene sentido.

Yo opino que en definitiva, lo que sucede en este caso es algo "EXTRAÑO" mientras no se compruebe lo contrario.

Tal vez ACK pueda decírnoslo cuando lo averigue.

De todas formas, yo tengo una duda al respecto de la forma en que se hace la consulta:

¿por qué se escribe 'cons.*' y luego 'cons.columna', en vez de '*' y luego solamente 'columna'?
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita