Oracle Create Temp Table

Oracle Create Temp Table



Globální dočasné tabulky jsou užitečné při ukládání provizorních dat, která jsou potřebná pouze pro dobu trvání transakce nebo relace. Na rozdíl od běžných tabulek jsou globální dočasné tabulky automaticky zrušeny, když relace nebo transakce skončí. Nemusí se tedy explicitně rušit jako běžné tabulky. Globální dočasné tabulky jsou však viditelné pouze pro aktuální relaci, takže k nim nemohou přistupovat jiné relace ani uživatelé.

V Oracle je globální dočasná tabulka speciální typ tabulky vytvořený pomocí příkazu „vytvořit globální dočasnou tabulku“. Tento příkaz je podobný běžnému příkazu „vytvořit tabulku“, ale obsahuje klíčové slovo „global dočasné“, které určuje, že tabulka je globální dočasnou tabulkou.







Syntaxe příkazu „CREATE GLOBAL TEMPORARY TABLE“ je následující:



CREATE GLOBAL TEMPORARY TABLE název_tabulky (
datový typ sloupec1 [NULL | NENULOVÝ],
datový typ sloupce2 [NULL | NENULOVÝ],
...
) [PŘI POTVRZENÍ {DELETE | ZACHOVAT} ŘÁDKY];

V této syntaxi je název_tabulky název globální dočasné tabulky, kterou chcete vytvořit. sloupec1, sloupec2 atd. jsou názvy a datové typy sloupců v tabulce.



Klauzule ON COMMIT určuje, zda budou řádky v tabulce odstraněny nebo zachovány, když je aktuální transakce potvrzena. Databázový stroj použije volbu ON COMMIT DELETE ROWS, pokud není definována klauzule ON COMMIT.





Jak již bylo zmíněno, mějte na paměti, že data v dočasné tabulce jsou soukromá. To znamená, že k ní nemají přístup žádné jiné relace, než které vytvořily tabulku.

Příklad vytvoření globální dočasné tabulky

Podívejme se na některé praktické příklady použití příkazu create dočasné tabulky v databázích Oracle.



Zvažte příklad dotazu zobrazený níže:

VYTVOŘIT GLOBÁLNÍ TEMPORARY TABLE temp_sales (
product_id NUMBER(10) NOT NULL,
datum_prodeje DATE NOT NULL,
sale_amount NUMBER(10,2) NOT NULL
) PŘI POTVRZENÍ VYMAZAT ŘÁDKY;

Ve výše uvedeném příkladu vytvoříme dočasnou tabulku pomocí možnosti ON COMMIT DELETE ROWS.

Poté můžeme vložit některá ukázková data jako:

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

Poté můžete transakci potvrdit jako:

SPÁCHAT;

Po potvrzení databázový stroj zkrátí všechna data v dočasné tabulce, jak je uvedeno v klauzuli potvrzení.

Příklad 2

Následující příklad ukazuje, jak vytvořit tabulku, která zachová řádky při potvrzení:

VYTVOŘIT GLOBÁLNÍ TEMPORARY TABLE temp_sales (
product_id NUMBER(10) NOT NULL,
datum_prodeje DATE NOT NULL,
sale_amount NUMBER(10,2) NOT NULL
) ON COMMIT ZACHOVAT ŘÁDKY ;

Poté můžeme přidat ukázkové řádky a potvrdit, jak je znázorněno:

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

SPÁCHAT;

V tomto případě by měla být data po operaci potvrzení zachována, jak ukazuje příkaz select níže:

SELECT * FROM TEMP_SALES;

Výstup:

Závěr

Příkaz „vytvořit dočasnou tabulku“ je mocný nástroj pro vytváření dočasných tabulek v Oracle. Dočasné tabulky jsou užitečné pro ukládání dočasných dat potřebných pouze pro transakci nebo relaci. Příkaz „vytvořit dočasnou tabulku“ vám umožňuje definovat strukturu a sloupce dočasné tabulky a určit, jak bude s řádky naloženo, když je transakce potvrzena. V důsledku toho může použití dočasných tabulek zlepšit výkon a efektivitu vašich dotazů a aplikací a snížit množství trvalého úložného prostoru požadovaného ve vaší databázi.