Oracle Créer une table temporaire

Oracle Creer Une Table Temporaire



Les tables temporaires globales sont utiles lors du stockage de données provisoires qui ne sont nécessaires que pour la durée d'une transaction ou d'une session. Contrairement aux tables ordinaires, les tables temporaires globales sont automatiquement supprimées à la fin de la session ou de la transaction. Ainsi, ils n'ont pas besoin d'être explicitement supprimés comme les tables normales. Cependant, les tables temporaires globales ne sont visibles que pour la session en cours, elles ne sont donc pas accessibles par d'autres sessions ou utilisateurs.

Dans Oracle, une table temporaire globale est un type spécial de table créé à l'aide de l'instruction « créer une table temporaire globale ». Cette instruction est similaire à l'instruction 'create table' habituelle mais inclut le mot-clé 'global Temporary' pour spécifier que la table est une table temporaire globale.







La syntaxe de l'instruction « CREATE GLOBAL TEMPORARY TABLE » est la suivante :



CREATE GLOBAL TEMPORARY TABLE nom_table (
type de données colonne1 [NULL | NON NULL],
type de données colonne2 [NULL | NON NULL],
...
) [ON COMMIT {SUPPRIMER | CONSERVER} LIGNES] ;

Dans cette syntaxe, table_name est le nom de la table temporaire globale que vous souhaitez créer. colonne1, colonne2, etc., sont les noms et les types de données des colonnes de la table.



La clause ON COMMIT spécifie si les lignes de la table seront supprimées ou conservées lors de la validation de la transaction en cours. Le moteur de base de données utilisera l'option ON COMMIT DELETE ROWS si la clause ON COMMIT n'est pas définie.





Comme mentionné, gardez à l'esprit que les données d'une table temporaire sont privées. Cela signifie qu'aucune autre session autre que celle qui a créé la table ne peut y accéder.

Création d'un exemple de table temporaire globale

Découvrons quelques exemples pratiques d'utilisation de l'instruction de création de table temporaire dans les bases de données Oracle.



Prenons l'exemple de requête ci-dessous :

CRÉER UNE TABLE TEMPORAIRE GLOBALE temp_sales (
product_id NUMBER(10) NON NULL,
sale_date DATE NON NULLE,
sale_amount NUMBER(10,2) NON NULL
) ON COMMIT SUPPRIMER LES LIGNES ;

Dans l'exemple ci-dessus, nous créons une table temporaire à l'aide de l'option ON COMMIT DELETE ROWS.

Nous pouvons ensuite insérer des exemples de données comme :

INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (3, DATE '2022-10-03', 130);

Après cela, vous pouvez valider la transaction en tant que :

COMMETTRE;

Après la validation, le moteur de base de données tronquera toutes les données de la table temporaire comme spécifié dans la clause de validation.

Exemple 2

L'exemple suivant montre comment créer une table qui conserve les lignes lors de la validation :

CRÉER UNE TABLE TEMPORAIRE GLOBALE temp_sales (
product_id NUMBER(10) NON NULL,
sale_date DATE NON NULLE,
sale_amount NUMBER(10,2) NON NULL
) ON COMMIT CONSERVER LES LIGNES ;

Nous pouvons ensuite ajouter des exemples de lignes et effectuer un commit comme indiqué :

INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (1, DATE '2022-10-01', 100);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (2, DATE '2022-10-02', 500);
INSERT INTO TEMP_SALES (product_id, sale_date, sale_amount) VALUES (3, DATE '2022-10-03', 130);

COMMETTRE;

Dans ce cas, les données doivent être conservées après l'opération de validation, comme indiqué par l'instruction select ci-dessous :

SÉLECTIONNEZ * À PARTIR DE TEMP_VENTES ;

Sortir:

Conclusion

L'instruction « créer une table temporaire » est un outil puissant pour créer des tables temporaires dans Oracle. Les tables temporaires sont utiles pour stocker les données temporaires nécessaires uniquement pour une transaction ou une session. L'instruction « créer une table temporaire » vous permet de définir la structure et les colonnes de la table temporaire et de spécifier comment les lignes seront gérées lorsque la transaction est validée. Par conséquent, l'utilisation de tables temporaires peut améliorer les performances et l'efficacité de vos requêtes et applications et réduire la quantité d'espace de stockage permanent requis dans votre base de données.