Ich habe eine Abfrage, die Wie führe ich eine Auswahl aus Tabellennamen aus, die von einer anderen Abfrage zurückgegeben werden?
select table_name from all_tables where lower(table_name) like 'test_table%';
Beispiel gibt Tabellennamen ich brauche, für Wie führe ich ein wählen Sie aus all diesen Tabellen mit Namen, die ich als Ergebnis der Abfrage erhalten? Ich habe versucht, sie zu verketten und "execute sofort" zu verwenden, aber ich konnte es nicht funktionieren lassen.
Ich habe versucht:
select 'select * from '||owner||'.'||table_name||';'
from all_tables
where lower(table_name) like '%test_table%';
Dann kopieren und die Ergebnisse einfügen, und führen Sie die Anweisungen, entweder als Skript oder individuell nach Ihren Bedürfnissen:
execute immediate 'select value from '|| select listagg(table_name, ', ') within group (order by table_name) from all_tables where table_name like 'test_table%';
Zeigen Sie, was Sie bereits versucht haben, auch wenn es nicht funktioniert. – Takarii
Wenn Sie ein [minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) einfügen, wird Ihre Antwort schneller angezeigt. Aber die Chancen stehen gut, dass Sie, wenn Sie PL/SQL verwenden müssen und die Tabellen nicht alle die gleichen Spalten und Spaltentypen haben, dbms_sql verwenden müssen. Andernfalls sollten Sie PL/SQL zugunsten von sqlplus stempeln. – jeff6times7