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

Qual è la differenza tra una tabella temporanea e una tabella temporanea globale in Oracle?

In Oracle non c'è alcuna differenza. Quando crei una tabella temporanea in un database Oracle, è automaticamente globale e devi includere la parola chiave "Globale".

Lo standard SQL, che definisce come viene interpretato il termine "GLOBAL TEMPORARY TABLE", consente un ambito LOCALE o GLOBAL. Ciò consentirebbe una tabella specifica dell'utente (LOCAL) o tutti (GLOBAL). Oracle implementa solo la versione GLOBAL.

I dati inseriti in una tabella Oracle Temporary sono specifici della sessione. Cioè, solo tu puoi vedere i tuoi dati anche se ci sono 100 utenti che utilizzano tutti la stessa tabella e i tuoi dati vengono eliminati dalla tabella quando ti disconnetti (o quando esegui il commit della transazione corrente) a seconda delle impostazioni della tabella.

Confrontalo con MS SQL-Server, dove le tabelle temporanee sono locali. Se ne crei uno, nessuno oltre a te sa che la tua tabella temporanea esiste. In Oracle, la creazione della tabella temporanea consente a tutti (e anche a tutti coloro che hanno accesso al tuo schema) di vedere la tabella. Quando esci dalla sessione, la tabella SQL-Server viene eliminata e dovrà essere ricreata per la sessione successiva. In Oracle, la tabella temporanea è ora una parte permanente dello schema, anche se i dati non lo sono.