Ogólnie rzecz biorąc, nie jest to szczególnie dobry projekt — przechowywanie SQL w tabelach i dynamiczne jego wykonywanie wprowadza różnego rodzaju problemy związane z bezpieczeństwem i konserwacją.
Prawdopodobnie jest możliwe (chociaż jest za późno w piątek, który zaczął się zbyt wcześnie, abym mógł to rozgryźć), aby wykonać naprawdę fajne zapytanie XML w stylu to zapytanie, które uruchamia count(*) dla każdej tabeli w schemacie to zrobiłoby to wszystko w jednym zapytaniu.
Jednak dla zdecydowanej większości programistów prostszym podejściem byłoby zapętlenie zapytań, uruchamianie ich pojedynczo i przechowywanie wyników gdzieś. Potencjalnie zmienna lokalna zostałaby dodana na przykład do zbioru zliczeń.
FOR q IN (SELECT sql_text FROM query_table)
LOOP
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM (' || q.sql_text || ')'
INTO some_local_variable;
<<do something with the local variable>>
END LOOP;
Ponieważ próbujesz utworzyć widok, możesz wziąć tę logikę i umieścić ją w funkcji tabeli potokowej. Zrobiłbyś PIPE ROW
do zwracania danych w pętli. Twój widok może następnie zostać utworzony na górze funkcji tabeli potokowej.