Oracle Opret Temp Tabel

Oracle Opret Temp Tabel



Globale midlertidige tabeller er nyttige ved lagring af foreløbige data, der kun er nødvendige for en transaktion eller sessionsvarighed. I modsætning til almindelige tabeller slettes globale midlertidige tabeller automatisk, når sessionen eller transaktionen slutter. Så de behøver ikke udtrykkeligt at blive droppet som normale tabeller. Globale midlertidige tabeller er dog kun synlige for den aktuelle session, så de kan ikke tilgås af andre sessioner eller brugere.

I Oracle er en global midlertidig tabel en speciel type tabel oprettet ved hjælp af sætningen 'opret global midlertidig tabel'. Denne erklæring ligner den almindelige 'opret tabel'-sætning, men inkluderer nøgleordet 'global midlertidig' for at angive, at tabellen er en global midlertidig tabel.







Syntaksen for 'CREATE GLOBAL TEMPORARY TABLE'-sætningen er som følger:



OPRET GLOBAL MIDLERTIDIG TABEL tabelnavn (
kolonne1 datatype [NULL | IKKE NULL],
kolonne2 datatype [NULL | IKKE NULL],
...
) [ON COMMIT {SLET | BEVAR} RÆKKER];

I denne syntaks er tabelnavn navnet på den globale midlertidige tabel, du vil oprette. kolonne1, kolonne2 osv. er navnene og datatyperne for kolonnerne i tabellen.



ON COMMIT-klausulen angiver, om rækkerne i tabellen slettes eller bevares, når den aktuelle transaktion er forpligtet. Databasemotoren vil bruge indstillingen ON COMMIT DELETE ROWS, hvis ON COMMIT-sætningen ikke er defineret.





Som nævnt skal du huske på, at dataene i en midlertidig tabel er private. Det betyder, at ingen andre sessioner end dem, der har oprettet tabellen, kan få adgang til den.

Oprettelse af globalt midlertidigt tabeleksempel

Lad os finde nogle praktiske eksempler på brug af oprettelse af midlertidig tabelsætning i Oracle-databaser.



Overvej eksempelforespørgslen vist nedenfor:

OPRET GLOBAL MIDLERTIDIG TABEL temp_sales (
product_id NUMBER(10) NOT NULL,
sale_date DATO IKKE NULL,
salgsbeløb NUMMER(10,2) IKKE NULL
) ON COMMIT SLET RÆKKER;

I eksemplet ovenfor opretter vi en midlertidig tabel ved at bruge ON COMMIT DELETE ROWS muligheden.

Vi kan derefter indsætte nogle eksempeldata som:

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);

Derefter kan du udføre transaktionen som:

BEGÅ;

Efter committing vil databasemotoren afkorte alle data i den midlertidige tabel som specificeret i commit-klausulen.

Eksempel 2

Følgende eksempel viser, hvordan man opretter en tabel, der bevarer rækker ved commit:

OPRET GLOBAL MIDLERTIDIG TABEL temp_sales (
product_id NUMBER(10) NOT NULL,
sale_date DATO IKKE NULL,
salgsbeløb NUMMER(10,2) IKKE NULL
) PÅ KOMMIT PRESERVE RÆKKER ;

Vi kan derefter tilføje eksempelrækker og commit som vist:

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);

BEGÅ;

I dette tilfælde skal dataene bevares efter commit-operationen, som vist ved den valgte erklæring nedenfor:

VÆLG * FRA TEMP_SALES;

Produktion:

Konklusion

Udsagnet 'opret midlertidig tabel' er et kraftfuldt værktøj til at oprette midlertidige tabeller i Oracle. Midlertidige tabeller er nyttige til lagring af midlertidige data, der kun er nødvendige for en transaktion eller session. Udsagnet 'opret midlertidig tabel' giver dig mulighed for at definere strukturen og kolonnerne i den midlertidige tabel og specificere, hvordan rækkerne vil blive håndteret, når transaktionen er forpligtet. Som et resultat kan brug af midlertidige tabeller forbedre ydeevnen og effektiviteten af ​​dine forespørgsler og applikationer og reducere mængden af ​​permanent lagerplads, der kræves i din database.