sql >> Base de Datos >  >> RDS >> Oracle

¿Cuál es la diferencia entre una tabla temporal y una tabla temporal global en Oracle?

En Oracle no hay ninguna diferencia. Cuando crea una tabla temporal en una base de datos de Oracle, automáticamente es global y debe incluir la palabra clave "Global".

El estándar SQL, que define cómo se interpreta el término "TABLA TEMPORAL GLOBAL", permite un ámbito LOCAL o GLOBAL. Esto permitiría una tabla específica de usuario (LOCAL) o todos (GLOBAL). Oracle implementa solo la versión GLOBAL.

Los datos que ingresa en una tabla temporal de Oracle son específicos de su sesión. Es decir, solo usted puede ver sus datos, incluso si hay 100 usuarios que usan la misma tabla, y sus datos se eliminan de la tabla cuando se desconecta (o cuando confirma la transacción actual), según la configuración de la tabla.

Compare esto con MS SQL-Server, donde las tablas temporales son locales. Si crea una, nadie más que usted sabe que existe su tabla temporal. En Oracle, la creación de la tabla temporal permite que todos (bueno, todos los que tienen acceso a su esquema) vean la tabla. Cuando cierra la sesión, la tabla de SQL-Server se elimina y deberá volver a crearse para la siguiente sesión. En Oracle, la tabla temporal ahora es una parte permanente de su esquema, incluso si los datos no lo son.