Eu não acho que você possa escrever uma consulta SQL simples com nomes de tabelas dinâmicas.
Você pode escrever um procedimento PL/SQL que usa
execute immediate
e retorna um cursor ou algo assim; alguém perguntou sobre isso ontem
. Se você está apenas tentando escrever essa consulta para interagir com alguns dados, essa pode ser sua melhor aposta. Além disso, você pode modificar isso transformando seu procedimento PL/SQL em uma função em pipeline , e então você pode chamá-lo de uma consulta SQL usando
TABLE()
. Se fosse eu, consideraria criar um sinônimo (ou uma exibição padrão que apenas seleciona das tabelas nomeadas dinamicamente) e agendar um trabalho para recriá-lo toda vez que novas tabelas forem criadas. Isso pode ser mais simples do que lidar com funções em pipeline.