Una vista es una consulta almacenada; en sí mismo, no contiene ningún dato. Si su código es complejo y obtiene datos de varias tablas, utilizando diferentes condiciones, agregaciones, etc., puede llevar algún tiempo acceder a los datos.
En su situación, tal vez una tabla temporal (GTT) global (o privada, dependiendo de la versión de Oracle que use) ayudaría.
- lo creas una vez
- al comienzo del procedimiento, inserte datos de la vista en él
- el resto del procedimiento funcionaría con aquellos preparados datos
- una vez que finaliza la sesión (o transacción, dependiendo de cómo haya configurado el GTT), los datos de la tabla se pierden
- la tabla se puede reutilizar la próxima vez que ejecute el procedimiento