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

Wie erstellen Sie eine temporäre Tabelle in einer Oracle-Datenbank?

Ja, Oracle hat temporäre Tabellen. Hier ist ein Link zu einem AskTom-Artikel, der sie beschreibt, und hier ist die offizielle CREATE TABLE-Dokumentation von Oracle.

In Oracle jedoch nur die Daten in einer temporären Tabelle ist temporär. Die Tabelle ist ein reguläres Objekt, das für andere Sitzungen sichtbar ist. Es ist eine schlechte Praxis, temporäre Tabellen in Oracle häufig zu erstellen und zu löschen.

CREATE GLOBAL TEMPORARY TABLE today_sales(order_id NUMBER)
ON COMMIT PRESERVE ROWS;

Oracle 18c fügte private temporäre Tabellen hinzu, bei denen es sich um Single-Session-In-Memory-Objekte handelt. Weitere Einzelheiten finden Sie in der Dokumentation. Private temporäre Tabellen können dynamisch erstellt und gelöscht werden.

CREATE PRIVATE TEMPORARY TABLE ora$ptt_today_sales AS
SELECT * FROM orders WHERE order_date = SYSDATE;

Temporäre Tabellen können nützlich sein, werden aber in Oracle häufig missbraucht. Sie können oft vermieden werden, indem mehrere Schritte mithilfe von Inline-Ansichten in einer einzigen SQL-Anweisung zusammengefasst werden.