Gestire le tabelle temporanee globali

A partire dalla versione 11.0.1.0, è possibile creare, identificare e rimuovere tabelle temporanee globali eseguendo comandi SQL.

Le tabelle temporanee globali sono come le tabelle temporanee locali, ma memorizzano lo schema in un catalogo. Ogni sessione SQL che fa riferimento a una tabella temporanea globale provoca la materializzazione di un'istanza distinta di quella tabella temporanea globale (cioè un multiset di righe visibile solo a quella sessione SQL). L'insieme di righe a cui fa riferimento il '<table name> di una tabella temporanea globale non può essere condiviso tra le sessioni SQL. La definizione di una tabella temporanea globale appare in uno schema. Gli utenti possono accedere a queste tabelle temporanee globali da sessioni diverse, ma l'utente di una sessione non può accedere ai dati creati da un utente di un'altra sessione. Inoltre, se un utente si ricollega a un database che ha tabelle temporanee globali, non può accedere ai dati da esse.

Quando si immette un comando per creare una tabella temporanea globale, il sistema memorizza la definizione della tabella nel catalogo di sistema come se fosse stata creata una tabella normale. Quando un utente inserisce un comando SQL che accede a una tabella temporanea globale e la tabella temporanea globale non è stata istanziata, il sistema crea una tabella temporanea locale con lo stesso nome e lo stesso schema della tabella temporanea globale. La tabella non verrà popolata con la creazione di una tabella temporanea globale. Una sessione che crea e utilizza una tabella temporanea globale sarà l'unica sessione a poter vedere l'oggetto e i dati della tabella temporanea locale.