Tabla temporal

jumida
13 de Agosto del 2003
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

nerea
13 de Agosto del 2003
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.

jumida
13 de Agosto del 2003
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.

lucia
13 de Agosto del 2003
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?

nerea
13 de Agosto del 2003
- 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.