Uma visualização é uma consulta armazenada; em si, ele não contém nenhum dado. Se seu código for complexo e buscar dados de várias tabelas, usando diferentes condições, agregações, outros enfeites, pode levar algum tempo para acessar os dados.
Na sua situação, talvez uma tabela temporária (GTT) global (ou privada; dependendo da versão do Oracle que você usa) ajude.
- você cria uma vez
- no início do procedimento, insira os dados da visualização nela
- o resto do procedimento funcionaria com aqueles preparados dados
- quando a sessão (ou transação; dependendo de como você configura o GTT) termina, os dados da tabela são perdidos
- a tabela pode ser reutilizada na próxima vez que você executar o procedimento