Oracle Create Temp Table

Oracle Create Temp Table



Globálne dočasné tabuľky sú užitočné pri ukladaní dočasných údajov, ktoré sú potrebné len na trvanie transakcie alebo relácie. Na rozdiel od bežných tabuliek sú globálne dočasné tabuľky automaticky zrušené, keď relácia alebo transakcia skončí. Netreba ich teda vyslovene vypúšťať ako bežné tabuľky. Globálne dočasné tabuľky sú však viditeľné iba pre aktuálnu reláciu, takže k nim nemôžu pristupovať iné relácie ani používatelia.

V Oracle je globálna dočasná tabuľka špeciálny typ tabuľky vytvorený pomocou príkazu „vytvoriť globálnu dočasnú tabuľku“. Tento príkaz je podobný bežnému príkazu „vytvoriť tabuľku“, ale obsahuje kľúčové slovo „global dočasný“ na určenie, že tabuľka je globálna dočasná tabuľka.







Syntax príkazu „CREATE GLOBAL TEMPORARY TABLE“ je nasledovná:



CREATE GLOBAL TEMPORARY TABLE table_name (
typ údajov stĺpec1 [NULL | NOT NULL],
Typ údajov stĺpca2 [NULL | NOT NULL],
...
) [PO ZÁVÄZENÍ {VYMAZAŤ | ZACHOVAŤ} RIADKY];

V tejto syntaxi je názov_tabuľky názov globálnej dočasnej tabuľky, ktorú chcete vytvoriť. stĺpec1, stĺpec2 atď. sú názvy a typy údajov stĺpcov v tabuľke.



Klauzula ON COMMIT určuje, či sa riadky v tabuľke vymažú alebo zachovajú pri potvrdení aktuálnej transakcie. Databázový mechanizmus použije voľbu ON COMMIT DELETE ROWS, ak klauzula ON COMMIT nie je definovaná.





Ako už bolo spomenuté, majte na pamäti, že údaje v dočasnej tabuľke sú súkromné. To znamená, že k nej nemajú prístup žiadne iné relácie okrem tých, ktoré vytvorili tabuľku.

Príklad vytvorenia globálnej dočasnej tabuľky

Pozrime sa na niekoľko praktických príkladov použitia príkazu create dočasnej tabuľky v databázach Oracle.



Zvážte príklad dotazu zobrazený nižšie:

VYTVORIŤ GLOBÁLNU TEMPORARY TABLE temp_sales (
product_id NUMBER(10) NOT NULL,
sale_date DATE NOT NULL,
sale_amount NUMBER(10,2) NOT NULL
) PRI POTVRDENÍ VYMAZAŤ RIADKY;

Vo vyššie uvedenom príklade vytvoríme dočasnú tabuľku pomocou možnosti ON COMMIT DELETE ROWS.

Potom môžeme vložiť niekoľko vzorových údajov ako:

INSERT INTO TEMP_SALES (identifikátor_produktu, dátum_predaja, suma_predaja) VALUES (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (identifikátor_produktu, dátum_predaja, suma_predaja) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (identifikátor_produktu, dátum_predaja, suma_predaja) VALUES (3, DATE '2022-10-03', 130);

Potom môžete vykonať transakciu ako:

COMMIT;

Po potvrdení databázový nástroj skráti všetky údaje v dočasnej tabuľke, ako je uvedené v klauzule potvrdenia.

Príklad 2

Nasledujúci príklad ukazuje, ako vytvoriť tabuľku, ktorá zachováva riadky pri odovzdaní:

VYTVORIŤ GLOBÁLNU TEMPORARY TABLE temp_sales (
product_id NUMBER(10) NOT NULL,
sale_date DATE NOT NULL,
sale_amount NUMBER(10,2) NOT NULL
) ON COMMIT PRESERVE ROWS ;

Potom môžeme pridať vzorové riadky a potvrdiť, ako je znázornené:

INSERT INTO TEMP_SALES (identifikátor_produktu, dátum_predaja, suma_predaja) VALUES (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (identifikátor_produktu, dátum_predaja, suma_predaja) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (identifikátor_produktu, dátum_predaja, suma_predaja) VALUES (3, DATE '2022-10-03', 130);

COMMIT;

V tomto prípade by sa mali údaje po operácii potvrdenia zachovať, ako ukazuje príkaz select nižšie:

SELECT * FROM TEMP_SALES;

Výkon:

Záver

Príkaz „vytvoriť dočasnú tabuľku“ je výkonný nástroj na vytváranie dočasných tabuliek v systéme Oracle. Dočasné tabuľky sú užitočné na ukladanie dočasných údajov potrebných iba pre transakciu alebo reláciu. Príkaz “vytvoriť dočasnú tabuľku” vám umožňuje definovať štruktúru a stĺpce dočasnej tabuľky a špecifikovať, ako sa bude s riadkami zaobchádzať, keď je transakcia potvrdená. Výsledkom je, že používanie dočasných tabuliek môže zlepšiť výkon a efektivitu vašich dotazov a aplikácií a znížiť množstvo trvalého úložného priestoru potrebného vo vašej databáze.