Obecně se nejedná o příliš dobrý návrh – ukládání SQL v tabulkách a jeho dynamické spouštění přináší nejrůznější problémy se zabezpečením a údržbou.
Pravděpodobně je možné (ačkoli je příliš pozdě v pátek, který začal příliš brzy na to, abych se to pokusil zjistit) udělat opravdu skvělý XML dotaz ve smyslu tento dotaz, který spustí count(*) proti každé tabulce ve schématu to vše udělá v jednom dotazu.
Pro drtivou většinu programátorů by však jednodušším přístupem bylo zacyklit dotazy, spouštět je jeden po druhém a výsledky někde uložit. Místní proměnná by mohla být například přidána do kolekce počtů.
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;
Protože se pokoušíte vytvořit pohled, můžete vzít tuto logiku a vložit ji do funkce zřetězené tabulky. Udělali byste PIPE ROW
vrátit data v rámci smyčky. Váš pohled by pak mohl být vytvořen nad funkcí zřetězené tabulky.