Oracle Utwórz tabelę tymczasową

Oracle Utworz Tabele Tymczasowa



Globalne tabele tymczasowe są przydatne podczas przechowywania tymczasowych danych, które są potrzebne tylko na czas trwania transakcji lub sesji. W przeciwieństwie do zwykłych tabel, globalne tabele tymczasowe są automatycznie usuwane po zakończeniu sesji lub transakcji. Nie trzeba ich więc jawnie usuwać, jak zwykłe tabele. Jednak globalne tabele tymczasowe są widoczne tylko dla bieżącej sesji, więc inne sesje lub użytkownicy nie mają do nich dostępu.

W Oracle globalna tabela tymczasowa to specjalny typ tabeli tworzony za pomocą instrukcji „utwórz globalną tabelę tymczasową”. Ta instrukcja jest podobna do zwykłej instrukcji „utwórz tabelę”, ale zawiera słowo kluczowe „global temporary”, aby określić, że tabela jest globalną tabelą tymczasową.







Składnia instrukcji „CREATE GLOBAL TEMPORARY TABLE” jest następująca:



UTWÓRZ GLOBALNĄ TABELĘ TYMCZASOWĄ nazwa_tabeli (
kolumna1 typ danych [NULL | NIE JEST ZEREM],
kolumna2 typ danych [NULL | NIE JEST ZEREM],
...
) [PO ZAKOŃCZENIU {USUŃ | ZACHOWAJ} WIERSZY];

W tej składni nazwa_tabeli to nazwa globalnej tabeli tymczasowej, którą chcesz utworzyć. kolumna1, kolumna2 itd. to nazwy i typy danych kolumn w tabeli.



Klauzula ON COMMIT określa, czy wiersze w tabeli zostaną usunięte, czy zachowane po zatwierdzeniu bieżącej transakcji. Silnik bazy danych użyje opcji ON COMMIT DELETE ROWS, jeśli klauzula ON COMMIT nie jest zdefiniowana.





Jak wspomniano, należy pamiętać, że dane w tabeli tymczasowej są prywatne. Oznacza to, że żadne inne sesje oprócz tej, w której utworzono tabelę, nie mają do niej dostępu.

Przykład tworzenia globalnej tabeli tymczasowej

Odkryjmy kilka praktycznych przykładów użycia instrukcji create temporary table w bazach danych Oracle.



Rozważ przykładowe zapytanie pokazane poniżej:

UTWÓRZ GLOBALNĄ TABELĘ TYMCZASOWĄ temp_sales (
product_id LICZBA(10) NIE NULL,
data_sprzedaży DATA NIE NULL,
sale_amount LICZBA(10,2) NIE NULL
) PRZY ZAKOŃCZENIU USUŃ WIERSZE;

W powyższym przykładzie tworzymy tabelę tymczasową za pomocą opcji ON COMMIT DELETE ROWS.

Następnie możemy wstawić przykładowe dane jako:

WSTAW DO TEMP_SALES (identyfikator_produktu, data_sprzedaży, kwota_sprzedaży) WARTOŚCI (1, DATA „2022-10-01”, 100);
WSTAW DO TEMP_SALES (identyfikator_produktu, data_sprzedaży, kwota_sprzedaży) WARTOŚCI (2, DATA „2022-10-02”, 500);
WSTAW DO TEMP_SALES (identyfikator_produktu, data_sprzedaży, kwota_sprzedaży) WARTOŚCI (3, DATA „2022-10-03”, 130);

Następnie możesz zatwierdzić transakcję jako:

POPEŁNIAĆ;

Po zatwierdzeniu silnik bazy danych obetnie wszystkie dane w tabeli tymczasowej zgodnie z klauzulą ​​zatwierdzenia.

Przykład 2

Poniższy przykład pokazuje, jak utworzyć tabelę, która zachowuje wiersze podczas zatwierdzenia:

UTWÓRZ GLOBALNĄ TABELĘ TYMCZASOWĄ temp_sales (
product_id LICZBA(10) NIE NULL,
data_sprzedaży DATA NIE NULL,
sale_amount LICZBA(10,2) NIE NULL
) ON COMMIT ZACHOWAJ WIERSZE ;

Następnie możemy dodać przykładowe wiersze i zatwierdzić, jak pokazano:

WSTAW DO TEMP_SALES (identyfikator_produktu, data_sprzedaży, kwota_sprzedaży) WARTOŚCI (1, DATA „2022-10-01”, 100);
WSTAW DO TEMP_SALES (identyfikator_produktu, data_sprzedaży, kwota_sprzedaży) WARTOŚCI (2, DATA „2022-10-02”, 500);
WSTAW DO TEMP_SALES (identyfikator_produktu, data_sprzedaży, kwota_sprzedaży) WARTOŚCI (3, DATA „2022-10-03”, 130);

POPEŁNIAĆ;

W takim przypadku dane powinny zostać zachowane po operacji zatwierdzenia, jak pokazuje poniższa instrukcja select:

WYBIERZ * Z TEMP_SPRZEDAŻY;

Wyjście:

Wniosek

Instrukcja „utwórz tabelę tymczasową” jest potężnym narzędziem do tworzenia tabel tymczasowych w Oracle. Tabele tymczasowe są przydatne do przechowywania tymczasowych danych potrzebnych tylko do transakcji lub sesji. Instrukcja „utwórz tabelę tymczasową” umożliwia zdefiniowanie struktury i kolumn tabeli tymczasowej oraz określenie sposobu obsługi wierszy po zatwierdzeniu transakcji. W rezultacie korzystanie z tabel tymczasowych może poprawić wydajność i wydajność zapytań i aplikacji oraz zmniejszyć ilość miejsca w pamięci stałej wymaganej w bazie danych.