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

Was ist der Unterschied zwischen einer temporären Tabelle und einer globalen temporären Tabelle in Oracle?

Bei Oracle gibt es keinen Unterschied. Wenn Sie eine temporäre Tabelle in einer Oracle-Datenbank erstellen, ist diese automatisch global, und Sie müssen das Schlüsselwort „Global“ angeben.

Der SQL-Standard, der definiert, wie der Begriff „GLOBAL TEMPORARY TABLE“ interpretiert wird, lässt entweder einen LOCAL- oder einen GLOBAL-Bereich zu. Dies würde entweder eine benutzerspezifische Tabelle (LOCAL) oder alle (GLOBAL) ermöglichen. Oracle implementiert nur die GLOBAL-Version.

Die Daten, die Sie in eine temporäre Oracle-Tabelle einfügen, sind sitzungsspezifisch. Das heißt, nur Sie können Ihre Daten sehen, selbst wenn 100 Benutzer alle dieselbe Tabelle verwenden, und Ihre Daten werden aus der Tabelle gelöscht, wenn Sie die Verbindung trennen (oder wenn Sie die aktuelle Transaktion festschreiben), abhängig von den Tabelleneinstellungen.

Vergleichen Sie dies mit MS SQL-Server, wo temporäre Tabellen lokal sind. Wenn Sie eine erstellen, weiß niemand außer Ihnen, dass Ihre temporäre Tabelle existiert. In Oracle ermöglicht das Erstellen der temporären Tabelle jedem (also jedem mit Zugriff auf Ihr Schema), die Tabelle zu sehen. Wenn Sie sich von Ihrer Sitzung abmelden, wird die SQL-Server-Tabelle gelöscht und muss für die nächste Sitzung neu erstellt werden. In Oracle ist die temporäre Tabelle jetzt ein fester Bestandteil Ihres Schemas, auch wenn die Daten dies nicht sind.