Una vista è una query memorizzata; di per sé, non contiene alcun dato. Se il suo codice è complesso e recupera i dati da più tabelle, utilizzando condizioni, aggregazioni e quant'altro, l'accesso ai dati può richiedere del tempo.
Nella tua situazione, forse una tabella temporanea (GTT) globale (o privata, a seconda della versione Oracle che utilizzi).
- lo crei una volta
- all'inizio della procedura, inserisci i dati della vista in essa
- il resto della procedura funzionerebbe con quelli preparati dati
- al termine della sessione (o transazione; a seconda di come hai impostato il GTT), i dati della tabella vengono persi
- la tabella può essere riutilizzata la prossima volta che esegui la procedura