Oracle

Global temporary table

Siempre sucede que en algún proyecto, especialmente los relacionados con datawarehouse, se necesite procesar una gran cantidad de información y que esa información procesada solo sea un primer paso para un siguiente proceso, lo mejor que hacia en esos casos es crear una tabla “de paso” que comúnmente llamaba una tabla temporal.

Desde hace ya un rato Oracle maneja lo que llamo “global temporary tables” que como su nombre lo dice, son tablas verdaderamente temporales, aquí dejo un ejemplo de como crear una:

1
2
3
4
5
CREATE global temporary TABLE global_temporary_table (
  columna1       VARCHAR2(10),
  columna2       VARCHAR2(10),
  columna3       VARCHAR2(10)
) ON COMMIT DELETE rows;

Sus ventajas son varias, la información contenida en ella esta solo disponible para la sesión actual, cualquier inserción, borrado, actualización solo se refleja en la sesión activa, en la creación se tienen dos opciones:

on commit delete rows
on commit preserve rows

“on commit delete” borra la información contenida en la tabla en un commit, “on commit preserve” mantiene la información en un commit, en cualquier caso si la sesión es terminada los datos se eliminan.

Muchas funcionalidades de cualquier tabla normal se mantienen en ella, como trigguers a nivel tabla, poder crear vistas, indices, exportar e importar (claro solo la definición de la tabla).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *