El comando "create global temporary tables" crea una tabla temporal para cada sesión. Eso significa que los datos no se comparten entre sesiones y
se eliminan al final de la misma.
Todos los usuarios que tengan permisos sobre la tabla podrán realizar operaciones DML sobre la misma.
Existen 2 tipos de datos temporales de acuerdo al tipo de tabla temporal:
- Datos con la duración de una transacción.
- Datos con la duración de una sesión.
Esto lo podemos hacer mediante las claúsulas:
- ON COMMIT DELETE ROWS: las filas que se insertan en la tabla son removidas de la misma ante un COMMIT o un ROLLBACK.
- ON COMMIT PRESERVE ROWS: las filas insertadas en la tabla permaneceran en la misma hasta que la sesion de usuario finalice.
A modo de ejemplificar esta explicación, veamos un pequeño ejemplo
SQL> create global temporary table prueba ( id int) on commit delete rows;
Table created.
SQL> insert into prueba values (1);
1 row created.
SQL> insert into prueba values (2);
1 row created.
SQL> insert into prueba values (3);
1 row created.
SQL> select * from prueba;
ID
---------
1
2
3
SQL> commit;
Commit complete.
SQL> select * from prueba;
no rows selected
/*****************/
SQL> create global temporary table prueba2 ( id int) on commit preserve rows;
Table created.
SQL> insert into prueba2 values (1);
1 row created.
SQL> insert into prueba2 values (2);
1 row created.
SQL> insert into prueba2 values (3);
1 row created.
SQL> select count(1) from prueba;
COUNT(*)
----------
153
SQL> commit;
Commit complete.
SQL> select * from prueba;
COUNT(*)
----------
153
Espero les haya servido.
Saludos!
Gondalf.
Suscribirse a:
Enviar comentarios (Atom)
Gracias hermano.
ResponderEliminarExcelente
ResponderEliminar¿Y cómo puedo borrar una tabla de estás?
ResponderEliminarCuando le doy drop table me aparece el ORA-14452
Gracias y saludos!!!