Oracle Create Temp Table

Oracle Create Temp Table

Globale midlertidige tabeller er nyttige når du lagrer foreløpige data som bare er nødvendig for en transaksjon eller øktvarighet. I motsetning til vanlige tabeller, blir globale midlertidige tabeller automatisk droppet når økten eller transaksjonen avsluttes. Så de trenger ikke å bli eksplisitt droppet som normale tabeller. Imidlertid er globale midlertidige tabeller bare synlige for den aktuelle økten, så de kan ikke nås av andre økter eller brukere.

I Oracle er en global midlertidig tabell en spesiell type tabell opprettet ved hjelp av "Create Global Midary Table" -uttalelsen ". Denne uttalelsen ligner på den vanlige "opprette tabell" -uttalelsen, men inkluderer nøkkelordet "global midlertidig" for å spesifisere at tabellen er en global midlertidig tabell.

Syntaksen til uttalelsen "Create Global Midary Table" er som følger:

Opprett global midlertidig tabell Tabell_navn (
Kolonne1 Datatype [NULL | IKKE NULL],
Kolonne2 Datatype [NULL | IKKE NULL],
..
) [På forpliktelse delete | Bevare rader];

I denne syntaksen er tabellnavn navnet på den globale midlertidige tabellen du vil opprette. Kolonne1, kolonne2, etc., er navnene og datatypene på kolonnene i tabellen.

ON -forpliktelsesklausulen spesifiserer om radene i tabellen vil bli slettet eller bevart når den gjeldende transaksjonen er begått. Databasemotoren vil bruke alternativet On Commit Delete Row.

Som nevnt, husk at dataene i en midlertidig tabell er privat. Dette betyr at ingen andre økter enn det som er opprettet, har tilgang til det.

Opprette globalt midlertidig tabelleksempel

La oss oppdage noen praktiske eksempler på å bruke CREATE midlertidig tabellerklæring i Oracle -databaser.

Tenk på eksemplet som er vist nedenfor:

Lag global midlertidig tabell temp_sales (
PRODUKT_ID NUMMER (10) Ikke null,
SALG_DATE DATO IKKE NULL,
SALG_AMOUNT NUMMER (10,2) Ikke null
) På forpliktelse slett rader;

I eksemplet over oppretter vi en midlertidig tabell ved å bruke alternativet On Commit Delete Rows.

Vi kan deretter sette inn noen eksempeldata som:

Sett inn Temp_Sales (Product_ID, Sale_date, Sale_amount) verdier (1, dato '2022-10-01', 100);
Sett inn Temp_Sales (Product_ID, Sale_date, Sale_amount) verdier (2, dato '2022-10-02', 500);
Sett inn Temp_Sales (Product_ID, Sale_date, Sale_amount) verdier (3, dato '2022-10-03', 130);

Etter det kan du begå transaksjonen som:

BEGÅ;

Etter å ha forpliktet seg, vil databasemotoren avkalle alle dataene i den midlertidige tabellen som spesifisert i Commit Clause.

Eksempel 2

Følgende eksempel viser hvordan du lager en tabell som bevarer rader på forpliktelse:

Lag global midlertidig tabell temp_sales (
PRODUKT_ID NUMMER (10) Ikke null,
SALG_DATE DATO IKKE NULL,
SALG_AMOUNT NUMMER (10,2) Ikke null
) På forpliktelse bevare rader;

Vi kan deretter legge til prøveklows og forplikte oss som vist:

Sett inn Temp_Sales (Product_ID, Sale_date, Sale_amount) verdier (1, dato '2022-10-01', 100);
Sett inn Temp_Sales (Product_ID, Sale_date, Sale_amount) verdier (2, dato '2022-10-02', 500);
Sett inn Temp_Sales (Product_ID, Sale_date, Sale_amount) verdier (3, dato '2022-10-03', 130);
BEGÅ;

I dette tilfellet bør dataene bevares etter forpliktelsesoperasjonen, som vist i SELECT -setningen nedenfor:

Velg * fra temp_sales;

Produksjon:

Konklusjon

Uttalelsen om "Create Matevery Table" er et kraftig verktøy for å lage midlertidige tabeller i Oracle. Midlertidige tabeller er nyttige for lagring av midlertidige data som bare er nødvendig for en transaksjon eller økt. Uttalelsen om "Create Matevery Table" lar deg definere strukturen og kolonnene i den midlertidige tabellen og spesifisere hvordan radene vil bli håndtert når transaksjonen er begått. Som et resultat kan bruk av midlertidige tabeller forbedre ytelsen og effektiviteten til spørsmålene og applikasjonene dine og redusere mengden permanent lagringsplass som kreves i databasen din.