Uso de tablas temporales: la creación y el uso de dos tablas temporales de Oracle

La tabla temporal de la base de datos Oracle se puede utilizar para guardar los datos de una sesión o los datos de una transacción. Cuando el enunciado de la consulta es muy complejo, podemos crear una tabla temporal para guardar los resultados de la consulta y realizar una serie de operaciones.

1. Crea una tabla temporal


Hay dos formas de crear una tabla temporal:
    1. Tabla temporal de nivel de sesión en confirmación de eliminación de filas; eliminación de datos cuando se confirma (predeterminado)
    2. Tabla temporal de nivel de transacción en confirmación de preservación de filas; retención de datos cuando se confirma

1. Tabla temporal a nivel de sesión


Una tabla temporal a nivel de sesión significa que los datos de la tabla temporal solo existen durante el ciclo de vida de la sesión. Cuando el usuario sale de la sesión, Oracle borra automáticamente los datos de la tabla temporal.

Ejecute la operación de confirmación o reversión, los datos de la tabla aún existen, cree una nueva ventana de comandos (equivalente a abrir una nueva sesión) y los datos de la tabla no se consultarán.
Formato:
 

Create Global Temporary Table Temp_Name
(
Col1 Type1,
Col2 Type2
...
)
On Commit Preserve Rows;

ejemplo:

create global temporary table temp_tb (col1 varchar(20)) on commit preserve rows;
insert into temp_tb values('test');
select * from temp_tb;

2. Tabla temporal a nivel de transacción 


Una tabla temporal a nivel de transacción significa que los datos en la tabla temporal solo existen durante el ciclo de vida de la transacción. Cuando finaliza una transacción (commit o rollback), Oracle borra automáticamente los datos en la tabla temporal.

Create Global Temporary Table Temp_Name
(
Col1 Type1,
Col2 Type2
...
)
On Commit Delete Rows;

ejemplo

create global temporary table temp_tb (col1 varchar(20)) on commit delete rows;
insert into  temp_tb values('test');
select * from  temp_tb;

2. Guarde los resultados de la consulta en una tabla temporal que no existía antes 


Ejemplo: esto es a nivel de sesión 

CREATE GLOBAL TEMPORARY TABLE tmptable  
ON COMMIT PRESERVE ROWS   
AS  
SELECT *  
FROM tablename  

Supongo que te gusta

Origin blog.csdn.net/u010919402/article/details/127690316
Recomendado
Clasificación