Crear tabla temporal de Oracle

Crear Tabla Temporal De Oracle



Las tablas temporales globales son útiles cuando se almacenan datos provisionales que solo se necesitan para la duración de una transacción o sesión. A diferencia de las tablas normales, las tablas temporales globales se descartan automáticamente cuando finaliza la sesión o la transacción. Por lo tanto, no es necesario que se eliminen explícitamente como las tablas normales. Sin embargo, las tablas temporales globales solo son visibles para la sesión actual, por lo que otras sesiones o usuarios no pueden acceder a ellas.

En Oracle, una tabla temporal global es un tipo especial de tabla creada mediante la instrucción 'crear tabla temporal global'. Esta declaración es similar a la declaración normal de 'crear tabla', pero incluye la palabra clave 'temporal global' para especificar que la tabla es una tabla temporal global.







La sintaxis de la instrucción 'CREATE GLOBAL TEMPORARY TABLE' es la siguiente:



CREAR TABLA TEMPORAL GLOBAL table_name (
columna1 tipo de datos [NULL | NO NULO],
columna2 tipo de datos [NULL | NO NULO],
    ...
) [AL COMPROMETERSE {ELIMINAR | PRESERVAR} FILAS];

En esta sintaxis, table_name es el nombre de la tabla temporal global que desea crear. columna1, columna2, etc., son los nombres y tipos de datos de las columnas de la tabla.



La cláusula ON COMMIT especifica si las filas de la tabla se eliminarán o conservarán cuando se confirme la transacción actual. El motor de la base de datos utilizará la opción ON COMMIT DELETE ROWS si la cláusula ON COMMIT no está definida.





Como se mencionó, tenga en cuenta que los datos en una tabla temporal son privados. Esto significa que ninguna otra sesión que no sea la que creó la tabla puede acceder a ella.

Ejemplo de creación de una tabla temporal global

Descubramos algunos ejemplos prácticos del uso de la declaración de creación de tabla temporal en bases de datos Oracle.



Considere la consulta de ejemplo que se muestra a continuación:

CREAR TABLA TEMPORAL GLOBAL temp_sales (
product_id NÚMERO (10) NO NULO,
sale_date FECHA NO NULA,
sale_amount NÚMERO (10,2) NO NULO
) EN COMMIT DELETE FILAS;

En el ejemplo anterior, creamos una tabla temporal usando la opción ON COMMIT DELETE ROWS.

Luego podemos insertar algunos datos de muestra como:

INSERTAR EN TEMP_SALES (product_id, sale_date, sale_amount) VALORES (1, FECHA '2022-10-01', 100);
INSERTAR EN TEMP_SALES (product_id, sale_date, sale_amount) VALORES (2, FECHA '2022-10-02', 500);
INSERTAR EN TEMP_SALES (product_id, sale_date, sale_amount) VALORES (3, FECHA '2022-10-03', 130);

Después de eso, puede confirmar la transacción como:

COMPROMETERSE;

Después de confirmar, el motor de la base de datos truncará todos los datos en la tabla temporal como se especifica en la cláusula de confirmación.

Ejemplo 2

El siguiente ejemplo muestra cómo crear una tabla que conserva las filas en la confirmación:

CREAR TABLA TEMPORAL GLOBAL temp_sales (
product_id NÚMERO (10) NO NULO,
sale_date FECHA NO NULA,
sale_amount NÚMERO (10,2) NO NULO
) ON COMMIT PRESERVE FILAS ;

Luego podemos agregar filas de muestra y confirmar como se muestra:

INSERTAR EN TEMP_SALES (product_id, sale_date, sale_amount) VALORES (1, FECHA '2022-10-01', 100);
INSERTAR EN TEMP_SALES (product_id, sale_date, sale_amount) VALORES (2, FECHA '2022-10-02', 500);
INSERTAR EN TEMP_SALES (product_id, sale_date, sale_amount) VALORES (3, FECHA '2022-10-03', 130);

COMPROMETERSE;

En este caso, los datos deben conservarse después de la operación de confirmación, como se muestra en la declaración de selección a continuación:

SELECCIONE * DESDE TEMP_SALES;

Producción:

Conclusión

La instrucción 'crear tabla temporal' es una herramienta poderosa para crear tablas temporales en Oracle. Las tablas temporales son útiles para almacenar datos temporales que solo se necesitan para una transacción o sesión. La instrucción 'crear tabla temporal' le permite definir la estructura y las columnas de la tabla temporal y especificar cómo se manejarán las filas cuando se confirme la transacción. Como resultado, el uso de tablas temporales puede mejorar el rendimiento y la eficiencia de sus consultas y aplicaciones y reducir la cantidad de espacio de almacenamiento permanente requerido en su base de datos.