Tabla temporal
Ojala me puedan ayudar como creo una tabla temporal en Oracle?
por ejemplo en sql server si deseo crear una tabla temporal desde una tabla escribo lo siguiente :
select * into #tabla_temporal from tabla_existente
luego puedo hacer diferentes transacciones sobre esta temporal y cuando salgo de la conexion automaticamente se borra como haria en oracle?
gracias
por ejemplo en sql server si deseo crear una tabla temporal desde una tabla escribo lo siguiente :
select * into #tabla_temporal from tabla_existente
luego puedo hacer diferentes transacciones sobre esta temporal y cuando salgo de la conexion automaticamente se borra como haria en oracle?
gracias
En oracle existen tablas temporales, pero no tienen el mismo comportamiento que en SQL-Server.
Se puede crear una tabla con la opción "GLOBAL TEMPORARY", pero al terminar la sesión no borra la tabla, sino que elimina todos los segmentos temporales, y como consecuencia también los registros, ya que se almacenan en segmentos temporales.
Por ejemplo:
CREATE GLOBAL TEMPORARY TABLE tabla_temporal
as (SELECT * FROM tabla_existente)
ON COMMIT PRESERVE ROWS;
Supongo que no te sirve para lo que tú quieres.
Se puede crear una tabla con la opción "GLOBAL TEMPORARY", pero al terminar la sesión no borra la tabla, sino que elimina todos los segmentos temporales, y como consecuencia también los registros, ya que se almacenan en segmentos temporales.
Por ejemplo:
CREATE GLOBAL TEMPORARY TABLE tabla_temporal
as (SELECT * FROM tabla_existente)
ON COMMIT PRESERVE ROWS;
Supongo que no te sirve para lo que tú quieres.
Gracias, por ahora es lo mejor que tengo
Pero te explico no solo es en SQL server tambien en Sybase, si se tiene 3 tablas inmensas (millon de registros) y por ahi a algun "gerente" se le ocurre un reporte con campos de estas 3 tablas imagina un join..seria recontra pesado, entonces ahi es donde se crea la tabla temporal mediante un procedure y los registros obtenidos se visualizan en el cliente PB o VB.
Pero te explico no solo es en SQL server tambien en Sybase, si se tiene 3 tablas inmensas (millon de registros) y por ahi a algun "gerente" se le ocurre un reporte con campos de estas 3 tablas imagina un join..seria recontra pesado, entonces ahi es donde se crea la tabla temporal mediante un procedure y los registros obtenidos se visualizan en el cliente PB o VB.
Esta TEMPORARY TABLE se crea en el tablespaces definido como temporary tablespace?
Se puede definir una TEMPORARY TABLE con campos propios como (id number , desc varchar2(50))?
Otra y la última por si sabes ... Su accesos y funcionamiento es + o - rápido que los cursores?
Se puede definir una TEMPORARY TABLE con campos propios como (id number , desc varchar2(50))?
Otra y la última por si sabes ... Su accesos y funcionamiento es + o - rápido que los cursores?
- Sí, la tabla temporal se crea en el tablespace temporal o "temporary tablespace".
- Sí se puede crear con campos propios, igual que una tabla normal:
CREATE GLOBAL TEMPORARY TABLE tabla
(id number,
desc varchar2(250)
);
- Sus accesos son igual que a tablas ordinarias, de hecho su funcionamiento es similar a las de las tablas ordinarias en la mayoría de los casos.
- Sí se puede crear con campos propios, igual que una tabla normal:
CREATE GLOBAL TEMPORARY TABLE tabla
(id number,
desc varchar2(250)
);
- Sus accesos son igual que a tablas ordinarias, de hecho su funcionamiento es similar a las de las tablas ordinarias en la mayoría de los casos.
