Oracle Creëer tijdelijke tabel

Oracle Creeer Tijdelijke Tabel



Globale tijdelijke tabellen zijn handig bij het opslaan van voorlopige gegevens die alleen nodig zijn voor de duur van een transactie of sessie. In tegenstelling tot reguliere tabellen, worden globale tijdelijke tabellen automatisch verwijderd wanneer de sessie of transactie eindigt. Ze hoeven dus niet expliciet te worden verwijderd zoals normale tabellen. Globale tijdelijke tabellen zijn echter alleen zichtbaar voor de huidige sessie en zijn dus niet toegankelijk voor andere sessies of gebruikers.

In Oracle is een globale tijdelijke tabel een speciaal type tabel dat is gemaakt met behulp van de instructie 'globale tijdelijke tabel maken'. Deze instructie is vergelijkbaar met de normale instructie 'tabel maken', maar bevat het trefwoord 'global temporary' om aan te geven dat de tabel een globale tijdelijke tabel is.







De syntaxis van de instructie 'CREATE GLOBAL TEMPORARY TABLE' is als volgt:



MAAK ALGEMENE TIJDELIJKE TABEL tabel_naam (
kolom1 gegevenstype [NULL | NIET NUL],
gegevenstype kolom2 [NULL | NIET NUL],
...
) [OP COMMIT {VERWIJDEREN | BEHOUD} RIJEN];

In deze syntaxis is tabel_naam de naam van de globale tijdelijke tabel die u wilt maken. kolom1, kolom2, etc. zijn de namen en gegevenstypen van de kolommen in de tabel.



De ON COMMIT-clausule geeft aan of de rijen in de tabel worden verwijderd of behouden wanneer de huidige transactie wordt vastgelegd. De database-engine gebruikt de optie ON COMMIT DELETE ROWS als de clausule ON COMMIT niet is gedefinieerd.





Houd er zoals gezegd rekening mee dat de gegevens in een tijdelijke tabel privé zijn. Dit betekent dat geen enkele andere sessie dan die de tabel heeft gemaakt er toegang toe heeft.

Voorbeeld van globale tijdelijke tabel maken

Laten we eens kijken naar enkele praktische voorbeelden van het gebruik van de opdracht create temporary table in Oracle-databases.



Bekijk de onderstaande voorbeeldquery:

MAAK ALGEMENE TIJDELIJKE TABEL temp_sales (
product_id NUMBER(10) NIET NULL,
verkoopdatum DATUM NIET NULL,
sale_amount NUMBER(10,2) NIET NULL
) BIJ COMMIT VERWIJDER RIJEN;

In het bovenstaande voorbeeld maken we een tijdelijke tabel met de optie ON COMMIT DELETE ROWS.

We kunnen dan enkele voorbeeldgegevens invoegen als:

INSERT IN TEMP_SALES (product_id, sale_date, sale_amount) WAARDEN (1, DATE '2022-10-01', 100);
INSERT IN TEMP_SALES (product_id, sale_date, sale_amount) WAARDEN (2, DATE '2022-10-02', 500);
INSERT IN TEMP_SALES (product_id, sale_date, sale_amount) WAARDEN (3, DATE '2022-10-03', 130);

Daarna kunt u de transactie vastleggen als:

VERBINDEN;

Na het vastleggen zal de database-engine alle gegevens in de tijdelijke tabel afkappen zoals gespecificeerd in de commit-clausule.

Voorbeeld 2

Het volgende voorbeeld laat zien hoe je een tabel maakt die rijen behoudt bij commit:

MAAK ALGEMENE TIJDELIJKE TABEL temp_sales (
product_id NUMBER(10) NIET NULL,
verkoopdatum DATUM NIET NULL,
sale_amount NUMBER(10,2) NIET NULL
) OP COMMIT BEHOUDEN RIJEN ;

We kunnen dan voorbeeldrijen toevoegen en vastleggen zoals weergegeven:

INSERT IN TEMP_SALES (product_id, sale_date, sale_amount) WAARDEN (1, DATE '2022-10-01', 100);
INSERT IN TEMP_SALES (product_id, sale_date, sale_amount) WAARDEN (2, DATE '2022-10-02', 500);
INSERT IN TEMP_SALES (product_id, sale_date, sale_amount) WAARDEN (3, DATE '2022-10-03', 130);

VERBINDEN;

In dit geval moeten de gegevens worden bewaard na de commit-bewerking, zoals blijkt uit de select-opdracht hieronder:

SELECTEER * UIT TEMP_SALES;

Uitgang:

Conclusie

De instructie 'Creëer tijdelijke tabel' is een krachtige tool voor het maken van tijdelijke tabellen in Oracle. Tijdelijke tabellen zijn handig voor het opslaan van tijdelijke gegevens die alleen nodig zijn voor een transactie of sessie. Met de instructie 'Creëer tijdelijke tabel' kunt u de structuur en kolommen van de tijdelijke tabel definiëren en specificeren hoe de rijen worden afgehandeld wanneer de transactie wordt vastgelegd. Als gevolg hiervan kan het gebruik van tijdelijke tabellen de prestaties en efficiëntie van uw query's en toepassingen verbeteren en de benodigde hoeveelheid permanente opslagruimte in uw database verminderen.