Oracle Create Temp Table

Oracle Create Temp Table



Globalne začasne tabele so v pomoč pri shranjevanju začasnih podatkov, ki so potrebni samo za trajanje transakcije ali seje. Za razliko od navadnih tabel se globalne začasne tabele samodejno izbrišejo, ko se seja ali transakcija konča. Torej jih ni treba izrecno opustiti kot običajne tabele. Vendar so globalne začasne tabele vidne le trenutni seji, zato druge seje ali uporabniki do njih ne morejo dostopati.

V Oraclu je globalna začasna tabela posebna vrsta tabele, ustvarjena s stavkom »ustvari globalno začasno tabelo«. Ta stavek je podoben običajnemu stavku 'ustvari tabelo', vendar vključuje ključno besedo 'globalno začasno', ki določa, da je tabela globalna začasna tabela.







Sintaksa stavka “CREATE GLOBAL TEMPORARY TABLE” je naslednja:



USTVARI GLOBALNO ZAČASNO TABELO ime_tabele (
podatkovni tip stolpca1 [NULL | NI NULL],
podatkovni tip stolpca2 [NULL | NI NULL],
...
) [ON COMMIT {DELETE | OHRANI} VRSTIC];

V tej sintaksi je ime_tabele ime globalne začasne tabele, ki jo želite ustvariti. stolpec1, stolpec2 itd. so imena in podatkovni tipi stolpcev v tabeli.



Klavzula ON COMMIT določa, ali bodo vrstice v tabeli izbrisane ali ohranjene, ko je trenutna transakcija odobrena. Mehanizem baze podatkov bo uporabil možnost ON COMMIT DELETE ROWS, če klavzula ON COMMIT ni definirana.





Kot že omenjeno, ne pozabite, da so podatki v začasni tabeli zasebni. To pomeni, da nobena druga seja razen tiste, ki je ustvarila tabelo, ne more dostopati do nje.

Primer ustvarjanja globalne začasne tabele

Odkrijmo nekaj praktičnih primerov uporabe stavka create temporary table v zbirkah podatkov Oracle.



Oglejte si spodnji primer poizvedbe:

USTVARI GLOBALNO ZAČASNO TABELO temp_sales (
product_id NUMBER(10) NOT NULL,
datum_prodaje DATE NOT NULL,
znesek_prodaje ŠTEVILO(10,2) NI NULL
) ON COMMIT DELETE ROWS;

V zgornjem primeru ustvarimo začasno tabelo z uporabo možnosti ON COMMIT DELETE ROWS.

Nato lahko vstavimo nekaj vzorčnih podatkov kot:

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

Po tem lahko transakcijo potrdite kot:

ZAVEZI;

Po potrditvi bo motor baze podatkov okrnil vse podatke v začasni tabeli, kot je določeno v klavzuli potrditve.

Primer 2

Naslednji primer prikazuje, kako ustvariti tabelo, ki ohrani vrstice ob potrditvi:

USTVARI GLOBALNO ZAČASNO TABELO temp_sales (
product_id NUMBER(10) NOT NULL,
datum_prodaje DATE NOT NULL,
znesek_prodaje ŠTEVILO(10,2) NI NULL
) ON COMMIT PRESERVE VRSTIC ;

Nato lahko dodamo vzorčne vrstice in potrdimo, kot je prikazano:

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

ZAVEZI;

V tem primeru je treba podatke ohraniti po operaciji potrditve, kot prikazuje spodnji stavek select:

IZBERI * IZ TEMP_SALES;

Izhod:

Zaključek

Stavek 'ustvari začasno tabelo' je močno orodje za ustvarjanje začasnih tabel v Oraclu. Začasne tabele so uporabne za shranjevanje začasnih podatkov, ki so potrebni samo za transakcijo ali sejo. Stavek »ustvari začasno tabelo« vam omogoča, da definirate strukturo in stolpce začasne tabele ter določite, kako bodo obravnavane vrstice, ko bo transakcija odobrena. Posledično lahko uporaba začasnih tabel izboljša zmogljivost in učinkovitost vaših poizvedb in aplikacij ter zmanjša količino trajnega prostora za shranjevanje, ki je potreben v vaši bazi podatkov.