Oracle erstellt temporäre Tabelle

Oracle Erstellt Temporare Tabelle



Globale temporäre Tabellen sind hilfreich, wenn vorläufige Daten gespeichert werden, die nur für eine Transaktions- oder Sitzungsdauer benötigt werden. Im Gegensatz zu regulären Tabellen werden globale temporäre Tabellen automatisch gelöscht, wenn die Sitzung oder Transaktion endet. Sie müssen also nicht wie normale Tabellen explizit gelöscht werden. Globale temporäre Tabellen sind jedoch nur für die aktuelle Sitzung sichtbar, sodass andere Sitzungen oder Benutzer nicht auf sie zugreifen können.

In Oracle ist eine globale temporäre Tabelle ein spezieller Tabellentyp, der mit der Anweisung „globale temporäre Tabelle erstellen“ erstellt wird. Diese Anweisung ähnelt der regulären Anweisung „Create Table“, enthält jedoch das Schlüsselwort „Global Temporary“, um anzugeben, dass die Tabelle eine globale temporäre Tabelle ist.







Die Syntax der Anweisung „CREATE GLOBAL TEMPORARY TABLE“ lautet wie folgt:



CREATE GLOBAL TEMPORARY TABLE Tabellenname (
Datentyp Spalte1 [NULL | NICHT NULL],
Datentyp Spalte2 [NULL | NICHT NULL],
...
) [BEIM COMMIT {LÖSCHEN | BEWAHREN} REIHEN];

In dieser Syntax ist Tabellenname der Name der globalen temporären Tabelle, die Sie erstellen möchten. Spalte1, Spalte2 usw. sind die Namen und Datentypen der Spalten in der Tabelle.



Die ON COMMIT-Klausel gibt an, ob die Zeilen in der Tabelle gelöscht oder beibehalten werden, wenn die aktuelle Transaktion festgeschrieben wird. Die Datenbank-Engine verwendet die Option ON COMMIT DELETE ROWS, wenn die ON COMMIT-Klausel nicht definiert ist.





Beachten Sie, wie bereits erwähnt, dass die Daten in einer temporären Tabelle privat sind. Dies bedeutet, dass keine anderen Sitzungen als die, die die Tabelle erstellt hat, darauf zugreifen können.

Beispiel zum Erstellen einer globalen temporären Tabelle

Lassen Sie uns einige praktische Beispiele für die Verwendung der Anweisung zum Erstellen einer temporären Tabelle in Oracle-Datenbanken entdecken.



Betrachten Sie die unten gezeigte Beispielabfrage:

GLOBALE TEMPORÄRE TABELLE ERSTELLEN temp_sales (
product_id ZAHL(10) NICHT NULL,
sale_date DATUM NICHT NULL,
sale_amount NUMBER(10,2) NOT NULL
) ON COMMIT ZEILEN LÖSCHEN;

Im obigen Beispiel erstellen wir eine temporäre Tabelle mit der Option ON COMMIT DELETE ROWS.

Wir können dann einige Beispieldaten einfügen als:

INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (3, DATE '2022-10-03', 130);

Danach können Sie die Transaktion wie folgt festschreiben:

BEGEHEN;

Nach dem Commit kürzt die Datenbank-Engine alle Daten in der temporären Tabelle, wie in der Commit-Klausel angegeben.

Beispiel 2

Das folgende Beispiel zeigt, wie Sie eine Tabelle erstellen, die Zeilen beim Commit beibehält:

GLOBALE TEMPORÄRE TABELLE ERSTELLEN temp_sales (
product_id ZAHL(10) NICHT NULL,
sale_date DATUM NICHT NULL,
sale_amount NUMBER(10,2) NOT NULL
) ON COMMIT PRESERVE ROWS ;

Wir können dann Beispielzeilen hinzufügen und wie gezeigt festschreiben:

INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (3, DATE '2022-10-03', 130);

BEGEHEN;

In diesem Fall sollten die Daten nach dem Commit-Vorgang erhalten bleiben, wie die nachstehende select-Anweisung zeigt:

* AUS TEMP_SALES AUSWÄHLEN;

Ausgabe:

Fazit

Die Anweisung „temporäre Tabelle erstellen“ ist ein leistungsstarkes Tool zum Erstellen temporärer Tabellen in Oracle. Temporäre Tabellen sind nützlich, um temporäre Daten zu speichern, die nur für eine Transaktion oder Sitzung benötigt werden. Mit der Anweisung „temporäre Tabelle erstellen“ können Sie die Struktur und die Spalten der temporären Tabelle definieren und angeben, wie die Zeilen behandelt werden, wenn die Transaktion festgeschrieben wird. Daher kann die Verwendung von temporären Tabellen die Leistung und Effizienz Ihrer Abfragen und Anwendungen verbessern und den in Ihrer Datenbank erforderlichen permanenten Speicherplatz reduzieren.