Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Abfragen einer Oracle-Datenbank mit dynamischen Tabellennamen

Ich glaube nicht, dass Sie eine einfache SQL-Abfrage mit dynamischen Tabellennamen schreiben können.

Sie können eine PL/SQL-Prozedur schreiben, die execute immediate verwendet und gibt einen Cursor oder so etwas zurück; das hat erst gestern jemand gefragt . Wenn Sie nur versuchen, diese Abfrage zu schreiben, um mit einigen Daten zu interagieren, ist dies möglicherweise die beste Wahl.

Darüber hinaus könnten Sie dies ändern, indem Sie Ihre PL/SQL-Prozedur in eine Pipeline-Funktion , und dann könnten Sie es aus einer SQL-Abfrage mit TABLE() aufrufen .

Wenn ich es wäre, würde ich erwägen, ein Synonym zu erstellen (oder eine Standardansicht, die nur aus den dynamisch benannten Tabellen auswählt) und einen Job zu planen, um es jedes Mal neu zu erstellen, wenn neue Tabellen erstellt werden. Das könnte einfacher sein, als sich mit Pipeline-Funktionen zu befassen.