Oracle sukurti temp lentelę

Oracle Sukurti Temp Lentele



Visuotinės laikinosios lentelės yra naudingos, kai saugomi laikinieji duomenys, reikalingi tik operacijos arba seanso trukmei. Skirtingai nuo įprastų lentelių, visuotinės laikinosios lentelės automatiškai atmetamos, kai baigiasi sesija arba operacija. Taigi, jų nereikia aiškiai nuleisti kaip įprastų lentelių. Tačiau visuotines laikinąsias lenteles mato tik dabartinė sesija, todėl kiti seansai ar vartotojai jų negali pasiekti.

„Oracle“ visuotinė laikina lentelė yra specialus lentelės tipas, sukurtas naudojant teiginį „sukurti visuotinę laikinąją lentelę“. Šis teiginys panašus į įprastą teiginį „sukurti lentelę“, tačiau apima raktinį žodį „visuotinis laikinas“, kad būtų nurodyta, kad lentelė yra visuotinė laikina lentelė.







Teiginio „CREATE GLOBAL TEMPORARY TABLE“ sintaksė yra tokia:



KURTI GLOBALIĄ LAIKINĄ LENTELĘ lentelės_pavadinimas (
1 stulpelio duomenų tipas [NULL | NOT NULL],
2 stulpelio duomenų tipas [NULL | NOT NULL],
...
) [ĮSIPAREIGOJIMAS {IŠTRINTI | PRESERVE} ROWS];

Šioje sintaksėje lentelės_pavadinimas yra pasaulinės laikinosios lentelės, kurią norite sukurti, pavadinimas. stulpelis1, stulpelis2 ir kt. yra lentelės stulpelių pavadinimai ir duomenų tipai.



Sąlyga ON COMMIT nurodo, ar lentelės eilutės bus ištrintos ar išsaugotos, kai bus atlikta dabartinė operacija. Duomenų bazės variklis naudos parinktį ON COMMIT DELETE ROWS, jei ON COMMIT sąlyga neapibrėžta.





Kaip minėta, atminkite, kad laikinosios lentelės duomenys yra privatūs. Tai reiškia, kad jokie kiti seansai, išskyrus tuos, kurie sukūrė lentelę, negali jos pasiekti.

Pasaulinės laikinosios lentelės kūrimo pavyzdys

Leiskite mums atrasti keletą praktinių pavyzdžių, kaip naudoti laikinosios lentelės teiginį Oracle duomenų bazėse.



Apsvarstykite toliau pateiktą užklausos pavyzdį:

KURTI PASAULINĘ LAIKINĘ LENTELĘ temp_sales (
product_id NUMBER(10) NOT NULL,
sale_date DATE NOT NULL,
pardavimo_suma NUMERIS(10,2) NE NULIS
) ĮSIPAREIGOJANT IŠTRINTI EILUTES;

Aukščiau pateiktame pavyzdyje sukuriame laikiną lentelę naudodami parinktį ON COMMIT DELETE ROWS.

Tada galime įterpti keletą duomenų pavyzdžių:

INSERT Į TEMP_PARDAVIMUS (produkto_id, išpardavimo_data, išpardavimo_suma) VERTES (1, DATA „2022-10-01“, 100);
INSERT Į TEMP_PARDAVIMUS (produkto_id, išpardavimo_data, išpardavimo_suma) VERTES (2, DATA '2022-10-02', 500);
INSERT Į TEMP_PARDAVIMUS (produkto_id, išpardavimo_data, išpardavimo_suma) VERTES (3, DATA '2022-10-03', 130);

Po to galite atlikti operaciją kaip:

ĮSIPAREIGOTI;

Atlikus įsipareigojimą, duomenų bazės variklis sutrumpins visus laikinosios lentelės duomenis, kaip nurodyta įsipareigojimo sąlygoje.

2 pavyzdys

Toliau pateiktame pavyzdyje parodyta, kaip sukurti lentelę, kuri išsaugo eilutes įteikimo metu:

KURTI PASAULINĘ LAIKINĘ LENTELĘ temp_sales (
product_id NUMBER(10) NOT NULL,
sale_date DATE NOT NULL,
pardavimo_suma NUMERIS(10,2) NE NULIS
) DĖL IŠSAUGOJIMO EILUČIŲ ĮSIPAREIGOJIMO ;

Tada galime pridėti pavyzdinių eilučių ir patvirtinti, kaip parodyta:

INSERT Į TEMP_PARDAVIMUS (produkto_id, išpardavimo_data, išpardavimo_suma) VERTES (1, DATA „2022-10-01“, 100);
INSERT Į TEMP_PARDAVIMUS (produkto_id, išpardavimo_data, išpardavimo_suma) VERTES (2, DATA '2022-10-02', 500);
INSERT Į TEMP_PARDAVIMUS (produkto_id, išpardavimo_data, išpardavimo_suma) VERTES (3, DATA '2022-10-03', 130);

ĮSIPAREIGOTI;

Tokiu atveju duomenys turėtų būti išsaugoti po įvykdymo operacijos, kaip parodyta toliau pateiktame pasirinkimo sakinyje:

SELECT * FROM TEMP_PARDAVIMAS;

Išvestis:

Išvada

Teiginys „sukurti laikiną lentelę“ yra galingas įrankis kuriant laikinąsias lenteles „Oracle“. Laikinosios lentelės yra naudingos saugoti laikinus duomenis, reikalingus tik operacijai ar seansui. Teiginys „sukurti laikiną lentelę“ leidžia apibrėžti laikinosios lentelės struktūrą ir stulpelius bei nurodyti, kaip bus tvarkomos eilutės, kai bus įvykdyta operacija. Dėl to laikinų lentelių naudojimas gali pagerinti užklausų ir programų našumą ir efektyvumą bei sumažinti nuolatinės saugyklos vietos, reikalingos jūsų duomenų bazėje, kiekį.