Consulta de Vistas sobre vistas en Oracle

La pregunta trata sobre lanzar una consulta contra una Vista2 que a su vez utiliza la Vista1.
Tenia entendido que cuando se crea una Vista esta se rellena cuando lanzamos la consulta.
El caso es que he creado la Vista2 en la que en su FROM llama a la Vista1. En principio parecía que los datos salían bien, pero si ejecutamos en primer lugar la Vista1 (la que está en el FROM) y después la Vista2 (la principal), el resultado es diferente.
¿Es posible que al estar la Vista1 en el FROM en lugar de volver a ejecutarse cuando se lanza la Vista2 coja los valores de la ultima vez que se ejecutó por sí sola?
1

1 Respuesta

5.300 pts. Administrador de bases de datos Oracle (DBA Oracle)...
En primer lugar, entiendo que no estás utilizando vistas materializadas, sino vistas dinámicas. Si no es así, indícamelo, porque la respuesta se complicaría...
Tienes una vista (Vista2) que en el FROM hace SELECT sobre otra vista (Vista1) y dices que si haces una SELECT sobre Vista2 el resultado es distinto que si haces una SELECT sobre Vista1 y luego sobre Vista2.
A no ser que te refieras a la ordenación de los registros, que eso sí se puede ver afectado entre ejecución y ejecución, no tiene ningún sentido que los datos resultados de la consulta sobre Vista2 varíen.
Cada vez que se ejecuta una SELECT sobre una vista (no materializada) se ejecuta la SELECT definida en la vista. No hay forma de que se guarden los datos de la ejecución anterior.
Espero aclararte algo, de todas formas, si me pasas las consultas y los resultados, quizá pueda aclarártelo mejor.
En principio son vistas dinámicas, por lo que entiendo que posiblemente haya cometido algún error al consultar.
Gracias por tu explicación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas