Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como você cria uma tabela temporária em um banco de dados Oracle?


Sim, o Oracle tem tabelas temporárias. Aqui está um link para um artigo do AskTom descrevendo-os e aqui está a documentação oficial do oracle CREATE TABLE.

No entanto, no Oracle, apenas os dados em uma tabela temporária é temporário. A tabela é um objeto regular visível para outras sessões. É uma prática ruim criar e descartar tabelas temporárias com frequência no Oracle.
CREATE GLOBAL TEMPORARY TABLE today_sales(order_id NUMBER)
ON COMMIT PRESERVE ROWS;

O Oracle 18c adicionou tabelas temporárias privadas, que são objetos na memória de sessão única. Consulte a documentação para obter mais detalhes. Tabelas temporárias privadas podem ser criadas e eliminadas dinamicamente.
CREATE PRIVATE TEMPORARY TABLE ora$ptt_today_sales AS
SELECT * FROM orders WHERE order_date = SYSDATE;

Tabelas temporárias podem ser úteis, mas são comumente abusadas no Oracle. Eles geralmente podem ser evitados combinando várias etapas em uma única instrução SQL usando exibições em linha.