- Oracle pozwala nam utworzyć tabelę tymczasową .
-Definicja tabeli tymczasowej jest widoczna dla wszystkich sesji, ale dane w tabeli tymczasowej są widoczne tylko dla sesji, która wstawia dane do tabeli.
– Aby utworzyć tabelę tymczasową, musimy użyć instrukcji CREATE GLOBAL TEMPORARY TABLE.
– Klauzula ON COMMIT wskazuje, czy dane w tabeli są związane z transakcją (domyślnie) czy z sesją
USUŃ WIERSZE
Tworzy to tymczasową tabelę, która jest specyficzna dla transakcji. Sesja zostaje powiązana z tabelą tymczasową po pierwszym wstawieniu transakcji do tabeli. Wiązanie znika po zakończeniu transakcji. Baza danych przycina tabelę (usuwa wszystkie wiersze) po każdym zatwierdzeniu.
ZACHOWAJ RZĘDY
Tworzy to tymczasową tabelę, która jest specyficzna dla sesji. Sesja zostaje powiązana z tabelą tymczasową po pierwszym wstawieniu do tabeli w sesji. To powiązanie znika pod koniec sesji lub przez wydanie OBCIĄŻENIA tabeli w sesji. Baza danych obcina tabelę po zakończeniu sesji.
Tabele tymczasowe są przydatne w aplikacjach, w których zestaw wyników ma być buforowany, być może dlatego, że jest tworzony przez uruchamianie wielu operacji DML
UTWÓRZ GLOBALNĄ TABELĘ TYMCZASOWĄ GL_DATA_TEMP(data początkowa DATA,
data końcowa DATA,
gl_id CHAR(20))
PO ZATWIERDZENIU USUŃ WIERSZE;
Indeksy można tworzyć w tabelach tymczasowych . Są również tymczasowe, a dane w indeksie mają ten sam zakres sesji lub transakcji, co dane w tabeli bazowej.
Jeśli instrukcja TRUNCATE zostanie wydana względem tabeli tymczasowej, obcinane są tylko dane dotyczące sesji. Nie ma to wpływu na dane innych sesji.
Jeśli wycofasz transakcję, wprowadzone dane zostaną utracone, chociaż definicja tabeli pozostanie.
Dane w tabelach tymczasowych są przechowywane w segmentach temp w przestrzeni tabel temp, która nie generuje żadnych powtórzeń, dzięki czemu operacje z użyciem globalnej tabeli tymczasowej są stosunkowo szybsze. Ale cofanie jest nadal generowane w przestrzeni tabel cofania, która ma ponowne rejestrowanie. Tak więc operacja ponawiania nie jest całkowicie wyeliminowana w globalnych tabelach tymczasowych, ale jest stosunkowo niższa
Dane w tabelach tymczasowych są automatycznie usuwane na koniec sesji bazy danych, nawet jeśli kończy się ona nieprawidłowo.
Widoki można tworzyć dla tabel tymczasowych oraz kombinacji tabel tymczasowych i stałych. Mogą być powiązane z nimi wyzwalacze
W wersji Oracle 12.1(12c baza danych) wprowadzono koncepcję tymczasowego cofania, która umożliwia przechowywanie segmentów cofania dla globalnych tabel tymczasowych w tymczasowym obszarze tabel. Pozwala to na używanie globalnych tabel tymczasowych w fizycznych rezerwowych bazach danych i bazach danych tylko do odczytu, a także eliminuje potrzebę tworzenia ponawiania.
ALTER SYSTEM SET TEMP_UNDO_ENABLED =TRUE;
ZMIEN SYSTEM SET TEMP_UNDO_ENABLED =FALSE;