Oracle
 sql >> Base de données >  >> RDS >> Oracle

Quelle est la différence entre une table temporaire et une table temporaire globale dans Oracle ?

Dans Oracle, il n'y a aucune différence. Lorsque vous créez une table temporaire dans une base de données Oracle, elle est automatiquement globale et vous devez inclure le mot clé "Global".

La norme SQL, qui définit la manière dont le terme "GLOBAL TEMPORARY TABLE" est interprété, autorise une portée LOCAL ou GLOBAL. Cela permettrait soit une table spécifique à l'utilisateur (LOCAL) ou tout le monde (GLOBAL). Oracle n'implémente que la version GLOBAL.

Les données que vous placez dans une table temporaire Oracle sont spécifiques à votre session. Autrement dit, vous seul pouvez voir vos données même s'il y a 100 utilisateurs utilisant tous la même table, et vos données sont supprimées de la table lorsque vous vous déconnectez (ou lorsque vous validez la transaction en cours) en fonction des paramètres de la table.

Comparez cela avec MS SQL-Server, où les tables temporaires sont locales. Si vous en créez une, personne d'autre que vous ne sait que votre table temporaire existe. Dans Oracle, la création de la table temporaire permet à tout le monde (enfin à tous ceux qui ont accès à votre schéma) de voir la table. Lorsque vous vous déconnectez de votre session, la table SQL-Server est supprimée et devra être recréée pour la prochaine session. Dans Oracle, la table temporaire fait désormais partie intégrante de votre schéma, même si les données ne le sont pas.