Example create temporary tables
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Exemple DDL Oracle |
| Contexte | Tables temporaires de session (GLOBAL TEMPORARY TABLE) |
| Voir aussi | Example create table · Example create tablespace |
Une table temporaire Oracle (CREATE GLOBAL TEMPORARY TABLE) a une définition
permanente et visible par toutes les sessions, mais des données privées à chaque
session — deux sessions qui insèrent dans la même table temporaire ne se voient jamais
mutuellement. Les données sont stockées dans le tablespace temporaire de l'utilisateur, pas
dans un tablespace permanent, et ne génèrent pas (ou très peu) de redo.
Le comportement à la fin de chaque transaction est contrôlé par la clause
ON COMMIT :
ON COMMIT DELETE ROWS(par défaut à partir d'Oracle8i si la clause est
omise) : la table se vide automatiquement à chaque COMMIT — utile pour des
données de travail purement intra-transactionnelles.
ON COMMIT PRESERVE ROWS: les données restent jusqu'à la fin de la
session (ou un TRUNCATE explicite) — utile pour des données de travail
qui doivent survivre à plusieurs transactions successives dans la même session.
Script
CONNECT scott/tiger
SET SERVEROUTPUT ON
-- Sans clause ON COMMIT : équivaut à ON COMMIT DELETE ROWS (comportement par défaut)
CREATE GLOBAL TEMPORARY TABLE mytemptab1 (
id NUMBER
, name VARCHAR2(500)
, average_salary NUMBER(15,2)
)
/
-- Vidée explicitement à chaque COMMIT
CREATE GLOBAL TEMPORARY TABLE mytemptab2 (
id NUMBER
, name VARCHAR2(500)
, average_salary NUMBER(15,2)
) ON COMMIT DELETE ROWS
/
-- Conserve les lignes jusqu'à la fin de la session
CREATE GLOBAL TEMPORARY TABLE mytemptab3 (
id NUMBER
, name VARCHAR2(500)
, average_salary NUMBER(15,2)
) ON COMMIT PRESERVE ROWS
/
scott/tiger est le compte de démonstration historique fourni par Oracle
(schéma EMP/DEPT) — à remplacer par un compte applicatif réel en dehors d'un contexte de test.
Voir aussi
- Example create table — tables permanentes classiques, pour comparaison
- Example create tablespace — création du tablespace temporaire dans lequel vivent les données de ces tables