sql >> Databasteknik >  >> RDS >> Oracle

Vad är skillnaden mellan en temporär tabell och en global temporär tabell i Oracle?

I Oracle är det ingen skillnad. När du skapar en temporär tabell i en Oracle-databas är den automatiskt global och du måste inkludera nyckelordet "Global".

SQL-standarden, som definierar hur termen "GLOBAL TEMPORARY TABLE" tolkas, tillåter antingen en LOCAL eller GLOBAL räckvidd. Detta skulle tillåta antingen en användarspecifik tabell (LOCAL) eller alla (GLOBAL). Oracle implementerar endast den GLOBALA versionen.

Datan du lägger i en Oracle Temporary-tabell är specifik för din session. Det vill säga, bara du kan se dina data även om det finns 100 användare som alla använder samma tabell, och din data raderas från tabellen när du kopplar från (eller när du genomför den aktuella transaktionen) beroende på tabellinställningar.

Jämför detta med MS SQL-Server, där temporära tabeller är lokala. Om du skapar en så vet ingen förutom du att din tillfälliga tabell finns. Genom att skapa den tillfälliga tabellen i Oracle kan alla (ja, alla med tillgång till ditt schema) se tabellen. När du loggar ut från din session raderas SQL-Server-tabellen och måste återskapas för nästa session. I Oracle är den tillfälliga tabellen nu en permanent del av ditt schema, även om data inte är det.



  1. opatch prereq

  2. Varför returnerar password_verify falskt?

  3. Använda Wordpress Användaruppgifter med ett php-skript för att skicka data till en iOS-app

  4. Formatera ett tal som valuta i SQLite