sql >> Database teknologi >  >> RDS >> Oracle

Oprettelse af en global midlertidig tabel i Oracle

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


  1. Sådan slettes lagret procedure i MySQL

  2. FEJL:Kunne ikke læse række 0, kolonne -1 fra CursorWindow. Sørg for, at markøren er korrekt initialiseret, før du får adgang til data

  3. Hvordan kan jeg se live MySQL-forespørgsler?

  4. PostgreSQL:Den alsidige INSERT