Widok to zapisane zapytanie; sam w sobie nie zawiera żadnych danych. Jeśli jego kod jest złożony i pobiera dane z kilku tabel, używając różnych warunków, agregacji itp., uzyskanie dostępu do danych może zająć trochę czasu.
W Twojej sytuacji może pomóc globalna (lub prywatna; w zależności od używanej wersji Oracle) tabela tymczasowa (GTT).
- Tworzysz to raz
- na początku procedury wstaw do niego dane z widoku
- reszta procedury zadziała z tymi przygotowanymi dane
- po zakończeniu sesji (lub transakcji; w zależności od ustawienia GTT) dane z tabeli są tracone
- tabela może być ponownie użyta przy następnym uruchomieniu procedury