Une vue est une requête stockée; lui-même, il ne contient aucune donnée. Si son code est complexe et récupère les données de plusieurs tables, en utilisant différentes conditions, agrégations, etc., l'accès aux données peut prendre un certain temps.
Dans votre situation, peut-être qu'une table temporaire (GTT) globale (ou privée ; selon la version d'Oracle que vous utilisez) serait utile.
- vous le créez une fois
- au début de la procédure, insérez-y les données de la vue
- le reste de la procédure fonctionnerait avec ceux préparés données
- une fois la session (ou la transaction ; selon la façon dont vous configurez le GTT) terminée, les données de la table sont perdues
- la table peut être réutilisée la prochaine fois que vous exécutez la procédure