Oracle Create Temp Table

Oracle Create Temp Table



Tabelele temporare globale sunt utile atunci când se stochează date provizorii care sunt necesare doar pentru o tranzacție sau durata sesiunii. Spre deosebire de tabelele obișnuite, tabelele temporare globale sunt eliminate automat când sesiunea sau tranzacția se încheie. Deci, nu trebuie să fie eliminate în mod explicit ca tabelele normale. Cu toate acestea, tabelele temporare globale sunt vizibile numai pentru sesiunea curentă, deci nu pot fi accesate de alte sesiuni sau utilizatori.

În Oracle, un tabel temporar global este un tip special de tabel creat folosind instrucțiunea „creare tabel temporar global”. Această declarație este similară cu instrucțiunea obișnuită „creare tabel”, dar include cuvântul cheie „temporar global” pentru a specifica faptul că tabelul este un tabel temporar global.







Sintaxa instrucțiunii „CREATE GLOBAL TEMPORARY TABLE” este următoarea:



CREATE GLOBAL TEMPORARY TABLE nume_tabel (
tipul de date coloana1 [NULL | NU NUL],
tipul de date column2 [NULL | NU NUL],
...
) [PE COMIT {DELETE | PĂSTRARE} RÂNDURI];

În această sintaxă, table_name este numele tabelului temporar global pe care doriți să îl creați. coloana1, coloana2 etc., sunt numele și tipurile de date ale coloanelor din tabel.



Clauza ON COMMIT specifică dacă rândurile din tabel vor fi șterse sau păstrate atunci când tranzacția curentă este comisă. Motorul bazei de date va folosi opțiunea ON COMMIT DELETE ROWS dacă clauza ON COMMIT nu este definită.





După cum am menționat, rețineți că datele dintr-un tabel temporar sunt private. Aceasta înseamnă că nicio altă sesiune decât cea care a creat tabelul nu o poate accesa.

Exemplu de creare a unui tabel temporar global

Să descoperim câteva exemple practice de utilizare a instrucțiunii create temporar tabel în bazele de date Oracle.



Luați în considerare exemplul de interogare prezentat mai jos:

CREATE GLOBAL TEMPORARY TABLE temp_sales (
product_id NUMBER(10) NOT NULL,
date_date DATA NU NULL,
vânzare_amount NUMBER(10,2) NOT NULL
) ON COMMIT DELETE RINDURI;

În exemplul de mai sus, creăm un tabel temporar utilizând opțiunea ON COMMIT DELETE ROWS.

Putem introduce apoi câteva date eșantion ca:

INSERT INTO TEMP_SALES (codul_produsului, data_vânzării, valoarea_venderii) VALUES (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (codul_produsului, data_venderii, valoarea_venderii) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (codul_produsului, data_venderii, valoarea_venderii) VALUES (3, DATE '2022-10-03', 130);

După aceea, puteți efectua tranzacția ca:

COMIT;

După comitere, motorul bazei de date va trunchia toate datele din tabelul temporar, așa cum este specificat în clauza de comitere.

Exemplul 2

Următorul exemplu arată cum să creați un tabel care păstrează rândurile la comitere:

CREATE GLOBAL TEMPORARY TABLE temp_sales (
product_id NUMBER(10) NOT NULL,
date_date DATA NU NULL,
vânzare_amount NUMBER(10,2) NOT NULL
) ON COMMIT PRESERVE RANDURI ;

Putem apoi adăuga rânduri eșantion și să comităm așa cum se arată:

INSERT INTO TEMP_SALES (codul_produsului, data_vânzării, valoarea_venderii) VALUES (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (codul_produsului, data_venderii, valoarea_venderii) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (codul_produsului, data_venderii, valoarea_venderii) VALUES (3, DATE '2022-10-03', 130);

COMIT;

În acest caz, datele ar trebui păstrate după operația de commit, așa cum se arată în instrucțiunea select de mai jos:

SELECT * FROM TEMP_SALES;

Ieșire:

Concluzie

Declarația „creare tabel temporar” este un instrument puternic pentru crearea tabelelor temporare în Oracle. Tabelele temporare sunt utile pentru stocarea datelor temporare necesare doar pentru o tranzacție sau sesiune. Instrucțiunea „creare tabel temporar” vă permite să definiți structura și coloanele tabelului temporar și să specificați cum vor fi gestionate rândurile atunci când tranzacția este efectuată. Ca rezultat, utilizarea tabelelor temporare poate îmbunătăți performanța și eficiența interogărilor și aplicațiilor dvs. și poate reduce cantitatea de spațiu de stocare permanent necesară în baza de date.