В качестве первого шага я бы написал запрос SQL, который генерирует запрос SQL:
SELECT 'SELECT area, count(*) FROM '||c.table_name||'UNION ALL' as run_me
FROM all_tables c
WHERE c.table_name LIKE 'STAF\_%\_MS' escape '\'
Выполнение этого приведет к выводу, являющемуся другим запросом SQL.Скопируйте текст результата из таблицы результатов и вставьте его обратно в панель запросов.Удалите окончательный вариант UNION ALL и запустите его
Как только вы поймете, как написать запрос SQL, который генерирует запрос SQL, вы можете посмотреть, как превратить его в представление или создать динамический запрос в строке.
Должен сказать, это ужасный способ хранения данных;вам лучше использовать ОДНУ таблицу с дополнительным столбцом, содержащим все, что находится в xxx STAF_xxx_MS прямо сейчас