Oracle Loo temptabel

Oracle Loo Temptabel



Globaalsed ajutised tabelid on abiks esialgsete andmete salvestamisel, mida on vaja ainult tehingu või seansi kestuse jaoks. Erinevalt tavalistest tabelitest tühistatakse globaalsed ajutised tabelid seansi või tehingu lõppedes automaatselt. Seega ei pea neid nagu tavalisi tabeleid selgesõnaliselt maha jätma. Globaalsed ajutised tabelid on aga nähtavad ainult praegusele seansile, seega ei pääse neile juurde teised seansid ega kasutajad.

Oracle'is on globaalne ajutine tabel spetsiaalset tüüpi tabel, mis on loodud lause 'loo globaalne ajutine tabel' abil. See avaldus sarnaneb tavalise 'tabeli loomise' avaldusega, kuid sisaldab märksõna 'globaalne ajutine', et täpsustada, et tabel on globaalne ajutine tabel.







Lause „CREATE GLOBAL TEMPORARY TABLE” süntaks on järgmine:



LOO GLOBAALNE AJUTINE TABEL tabeli_nimi (
veerg1 andmetüüp [NULL | EI NULL],
veerg2 andmetüüp [NULL | EI NULL],
...
) [KOHUSTUSSE {KUSTUTA | SÄILITA} RIDA];

Selles süntaksis on tabeli_nimi globaalse ajutise tabeli nimi, mille soovite luua. veerg1, veerg2 jne on tabeli veergude nimed ja andmetüübid.



ON COMMIT klausel määrab, kas praeguse tehingu sidumisel tabelis olevad read kustutatakse või säilitatakse. Andmebaasimootor kasutab suvandit ON COMMIT DELETE ROWS, kui klausel ON COMMIT pole määratletud.





Nagu mainitud, pidage meeles, et ajutise tabeli andmed on privaatsed. See tähendab, et sellele ei pääse juurde ükski teine ​​seanss peale selle, mis tabeli lõi.

Globaalse ajutise tabeli näide

Avastame mõned praktilised näited ajutise tabeli loomise lause kasutamisest Oracle'i andmebaasides.



Mõelge allpool näidatud päringu näidisele:

LOO ÜLEMAALNE AJUTINE TABEL temp_sales (
product_id NUMBER(10) EI OLE NULL,
sale_date DATE NOT NULL,
müügi_summa NUMBER(10,2) EI OLE NULL
) ON COMMIT KUSTUTA RIDAD;

Ülaltoodud näites loome ajutise tabeli, kasutades valikut ON COMMIT DELETE ROWS.

Seejärel saame sisestada mõned näidisandmed järgmiselt:

SISESTAGE TEMP_MÜÜK (toote_id, müügi_kuupäev, müügi_summa) VÄÄRTUSED (1, KUUPÄEV '2022-10-01', 100);
SISESTAGE TEMP_MÜÜK (toote_id, müügi_kuupäev, müügi_summa) VÄÄRTUSED (2, KUUPÄEV '2022-10-02', 500);
SISESTAGE TEMP_MÜÜK (toote_id, müügi_kuupäev, müügi_summa) VÄÄRTUSED (3, KUUPÄEV '2022-10-03', 130);

Pärast seda saate tehingu sooritada järgmiselt:

COMMIT;

Pärast sidumist kärbib andmebaasi mootor kõik ajutise tabelis olevad andmed, nagu on täpsustatud sidumisklauslis.

Näide 2

Järgmises näites on näidatud, kuidas luua tabel, mis säilitab reale kinnitamisel:

LOO ÜLEMAALNE AJUTINE TABEL temp_sales (
product_id NUMBER(10) EI OLE NULL,
sale_date DATE NOT NULL,
müügi_summa NUMBER(10,2) EI OLE NULL
) SÄILITUSRIDADE KOHTA ;

Seejärel saame lisada näidisridu ja kinnitada, nagu näidatud:

SISESTAGE TEMP_MÜÜK (toote_id, müügi_kuupäev, müügi_summa) VÄÄRTUSED (1, KUUPÄEV '2022-10-01', 100);
SISESTAGE TEMP_MÜÜK (toote_id, müügi_kuupäev, müügi_summa) VÄÄRTUSED (2, KUUPÄEV '2022-10-02', 500);
SISESTAGE TEMP_MÜÜK (toote_id, müügi_kuupäev, müügi_summa) VÄÄRTUSED (3, KUUPÄEV '2022-10-03', 130);

COMMIT;

Sel juhul tuleks andmed pärast sissekandetoimingut säilitada, nagu näitab allolev valikulause:

SELECT * FROM TEMP_SALES;

Väljund:

Järeldus

Avaldus 'loo ajutine tabel' on võimas tööriist ajutiste tabelite loomiseks Oracle'is. Ajutised tabelid on kasulikud ainult tehingu või seansi jaoks vajalike ajutiste andmete salvestamiseks. Avaldus 'loo ajutine tabel' võimaldab teil määratleda ajutise tabeli struktuuri ja veerud ning määrata, kuidas ridu tehingu sooritamisel käsitletakse. Selle tulemusena võib ajutiste tabelite kasutamine parandada teie päringute ja rakenduste jõudlust ja tõhusust ning vähendada andmebaasis nõutava alalise salvestusruumi hulka.