Saltar al contenido

¿Cómo se crea una tabla temporal en una base de datos Oracle?

Si hallas alguna incompatibilidad en tu código o trabajo, recuerda probar siempre en un entorno de testing antes aplicar el código al trabajo final.

Solución:

Sí, Oracle tiene tablas temporales. Aquí hay un enlace a un artículo de AskTom que los describe y aquí está la documentación oficial de Oracle CREATE TABLE.

Sin embargo, en Oracle, sólo el datos en una tabla temporal es temporal. La tabla es un objeto regular visible para otras sesiones. Es una mala práctica crear y eliminar con frecuencia tablas temporales en Oracle.

CREATE GLOBAL TEMPORARY TABLE today_sales(order_id NUMBER)
ON COMMIT PRESERVE ROWS;

Oracle 18c agregó tablas temporales privadas, que son objetos en memoria de sesión única. Consulte la documentación para obtener más detalles. Las tablas temporales privadas se pueden crear y eliminar dinámicamente.

CREATE PRIVATE TEMPORARY TABLE ora$ptt_today_sales AS
SELECT * FROM orders WHERE order_date = SYSDATE;

Las tablas temporales pueden ser útiles, pero Oracle suele abusar de ellas. A menudo se pueden evitar combinando varios pasos en una sola instrucción SQL mediante vistas en línea.

Solo un consejo. Las tablas temporales en Oracle son diferentes a las de SQL Server. Lo creas UNA VEZ y solo UNA VEZ, no cada sesión. Las filas que inserta en él son visibles solo para su sesión y se eliminan automáticamente (es decir, TRUNCATEno DROP) cuando finaliza su sesión (o el final de la transacción, según la cláusula “ON COMMIT” que utilice).

CREATE GLOBAL TEMPORARY TABLE Table_name
    (startdate DATE,
     enddate DATE,
     class CHAR(20))
  ON COMMIT DELETE ROWS;

Recuerda algo, que tienes concesión de explicar .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *