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

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

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, solo los 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 utilizando vistas en línea.