Oracle Crea Temp Table

Oracle Crea Temp Table

Le tabelle temporanee globali sono utili durante la memorizzazione di dati provvisorie necessari solo per una transazione o una durata della sessione. A differenza delle normali tabelle, le tabelle temporanee globali vengono eliminate automaticamente alla fine della sessione o della transazione. Quindi, non hanno bisogno di essere esplicitamente lasciati cadere come tavoli normali. Tuttavia, le tabelle temporanee globali sono visibili solo alla sessione corrente, quindi non può essere accessibile da altre sessioni o utenti.

In Oracle, una tabella temporanea globale è un tipo speciale di tabella creata utilizzando l'istruzione "Crea tabella temporanea globale". Questa affermazione è simile alla normale istruzione "Crea tabella" ma include la parola chiave "temporaneo globale" per specificare che la tabella è una tabella temporanea globale.

La sintassi dell'istruzione "Crea la tabella temporanea globale" è la seguente:

Crea tabella tabella temporanea globale_name (
Datatype colonnello1 [NULL | NON NULLO],
Tipo di dati colonnello2 [NULL | NON NULLO],
..
) [Su commit elimina | Riserva righe];

In questa sintassi, Table_name è il nome della tabella temporanea globale che si desidera creare. colonna1, colonna2, ecc., sono i nomi e i tipi di dati delle colonne nella tabella.

La clausola di commit on specifica se le righe nella tabella verranno eliminate o conservate quando viene commessa la transazione corrente. Il motore del database utilizzerà l'opzione On Commit Elimina righe se la clausola di commit non è definita.

Come accennato, tieni presente che i dati in una tabella temporanea sono privati. Ciò significa che nessun'altra sessione diversa da quella creata la tabella può accedervi.

Creazione di un esempio di tabella temporanea globale

Scopriamo alcuni esempi pratici dell'utilizzo dell'istruzione Crea Tovence Tabella nei database Oracle.

Considera la query di esempio mostrata di seguito:

Crea tabella temporanea globale temp_sales (
Numero Product_id (10) NON NULL,
Sale_date Data non NULL,
Sale_amount Number (10,2) non null
) Su commit eliminare righe;

Nell'esempio sopra, creiamo una tabella temporanea utilizzando l'opzione On commit elimina righe.

Possiamo quindi inserire alcuni dati di esempio come:

Inserisci in temp_sales (product_id, sales_date, sales_amount) valori (1, data '2022-10-01', 100);
Inserisci in temp_sales (product_id, sales_date, sales_amount) valori (2, data '2022-10-02', 500);
Inserisci in temp_sales (product_id, sales_date, sales_amount) valori (3, data '2022-10-03', 130);

Dopodiché, puoi commettere la transazione come:

COMMETTERE;

Dopo l'impegno, il motore del database troncerà tutti i dati nella tabella temporanea come specificato nella clausola di commit.

Esempio 2

Il seguente esempio mostra come creare una tabella che preserva le righe sul commit:

Crea tabella temporanea globale temp_sales (
Numero Product_id (10) NON NULL,
Sale_date Data non NULL,
Sale_amount Number (10,2) non null
) Su righe di riserva di commit;

Possiamo quindi aggiungere righe di esempio e impegnarci come mostrato:

Inserisci in temp_sales (product_id, sales_date, sales_amount) valori (1, data '2022-10-01', 100);
Inserisci in temp_sales (product_id, sales_date, sales_amount) valori (2, data '2022-10-02', 500);
Inserisci in temp_sales (product_id, sales_date, sales_amount) valori (3, data '2022-10-03', 130);
COMMETTERE;

In questo caso, i dati devono essere preservati dopo l'operazione di commit, come mostrato dall'istruzione selezionata di seguito:

Seleziona * da temp_sales;

Produzione:

Conclusione

L'istruzione "Crea tabella temporanea" è uno strumento potente per la creazione di tabelle temporanee in Oracle. Le tabelle temporanee sono utili per archiviare i dati temporanei necessari solo per una transazione o una sessione. L'istruzione "Crea tabella temporanea" consente di definire la struttura e le colonne della tabella temporanea e specificare come verranno gestite le righe quando viene commessa la transazione. Di conseguenza, l'uso di tabelle temporanee può migliorare le prestazioni e l'efficienza delle domande e delle applicazioni e ridurre la quantità di spazio di archiviazione permanente richiesto nel database.