-Oracle giver os mulighed for at oprette en midlertidig tabel .
-Definitionen af en midlertidig tabel er synlig for alle sessioner, men dataene i en midlertidig tabel er kun synlige for den session, der indsætter dataene i tabellen.
-Vi er nødt til at bruge CREATE GLOBAL TEMPORARY TABLE erklæringen til at oprette en midlertidig tabel.
- ON COMMIT -klausulen angiver, om dataene i tabellen er transaktionsspecifikke (standard) eller sessionsspecifikke
SLET RÆKKER
Dette opretter en midlertidig tabel, der er transaktionsspecifik. En session bliver bundet til den midlertidige tabel med en transaktion, der først indsættes i tabellen. Bindingen forsvinder ved slutningen af transaktionen. Databasen afkorter tabellen (slet alle rækker) efter hver commit.
BEVAR RÆKKER
Dette skaber en midlertidig tabel, der er sessionsspecifik. En session bliver bundet til den midlertidige tabel med den første indsættelse i tabellen i sessionen. Denne binding forsvinder i slutningen af sessionen eller ved at udstede en TRUNCATE af tabellen i sessionen. Databasen afkorter tabellen, når du afslutter sessionen.
Midlertidige tabeller er nyttige i applikationer, hvor et resultatsæt skal bufres, måske fordi det er konstrueret ved at køre flere DML-operationer
OPRET GLOBAL MIDLERTIDIG TABEL GL_DATA_TEMP(startdato,
slutdato,
gl_id CHAR(20))
ON COMMIT SLET RÆKKER;
Indekser kan oprettes på midlertidige tabeller . De er også midlertidige, og dataene i indekset har samme session eller transaktionsomfang som dataene i den underliggende tabel.
Hvis TRUNCATE-sætningen udstedes mod en midlertidig tabel, afkortes kun de sessionsspecifikke data. Der er ingen effekt på data fra andre sessioner.
Hvis du ruller tilbage en transaktion, går de indtastede data tabt, selvom tabeldefinitionen består.
Data i midlertidige tabeller er gemt i midlertidige segmenter i det midlertidige tablespace, som ikke genererer nogen redo, så drift ved hjælp af global midlertidig tabel er relativt hurtigere. Men fortryd genereres stadig i fortryd tablespace, som har fortryd-logning. Så gentag-operation er ikke fuldstændig elimineret i globale midlertidige tabeller, men de er relativt lavere
Data i midlertidige tabeller slettes automatisk i slutningen af databasesessionen, selvom den ender unormalt.
Visninger kan oprettes mod midlertidige tabeller og kombinationer af midlertidige og permanente tabeller. De kan have udløsere forbundet med dem
Med 12.1(12c-database) Oracle-udgivelsen er konceptet med midlertidig fortrydelse blevet introduceret, som tillader, at fortryd-segmenterne for globale midlertidige tabeller kan lagres i det midlertidige tablespace. Dette gør det muligt for globale midlertidige tabeller at blive brugt i fysiske standby-databaser og skrivebeskyttede databaser, samt fjerner behovet for at oprette redo.
ALTER SYSTEM SET TEMP_UNDO_ENABLED =TRUE;
ALTER SYSTEM SET TEMP_UNDO_ENABLED =FALSK;