Maison >base de données >tutoriel mysql >Comment créer et gérer des tables temporaires dans Oracle ?

Comment créer et gérer des tables temporaires dans Oracle ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-16 20:20:10443parcourir

How Do I Create and Manage Temporary Tables in Oracle?

Création et gestion de tables temporaires Oracle

Dans la base de données Oracle, des tables temporaires sont utilisées pour stocker les résultats intermédiaires lors de l'exécution des requêtes. Contrairement à d'autres bases de données, les tables temporaires d'Oracle ne sont pas automatiquement supprimées après utilisation.

Créer une table temporaire globale

Les tables temporaires globales sont visibles par toutes les sessions de la base de données et leurs données existent jusqu'à la fin de la session qui les a créées. Pour créer une table temporaire globale, utilisez la syntaxe suivante :

<code class="language-sql">CREATE GLOBAL TEMPORARY TABLE <表名> (
  <列名> <数据类型>
)
ON COMMIT PRESERVE ROWS;</code>
La clause

ON COMMIT PRESERVE ROWS garantit que les données de la table sont conservées même après la validation de la transaction.

Remplir la table temporaire

Après avoir créé la table temporaire, vous pouvez la remplir à l'aide de l'instruction INSERT comme suit :

<code class="language-sql">INSERT INTO <表名>
SELECT * FROM <源表>;</code>

Alternativement, une table temporaire peut être créée et remplie dans une seule instruction en utilisant l'instruction CREATE...AS SELECT :

<code class="language-sql">CREATE GLOBAL TEMPORARY TABLE <表名> AS
SELECT * FROM <源表>;</code>

Table temporaire privée (Oracle 18c et supérieur)

Oracle 18c a introduit des tables temporaires privées, qui sont stockées en mémoire et disponibles uniquement pour la session en cours. Ces tables sont créées et supprimées dynamiquement :

<code class="language-sql">CREATE PRIVATE TEMPORARY TABLE <表名> AS
SELECT * FROM <源表>;</code>

Abus de tables temporaires

Bien que les tables temporaires soient utiles, elles peuvent également être utilisées de manière abusive dans Oracle. Une utilisation excessive de tables temporaires peut entraîner des problèmes de performances et des conflits de ressources. Pour éviter toute utilisation abusive, utilisez les tables temporaires avec prudence et envisagez d'utiliser des vues en ligne lorsque cela est possible.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn