viernes, 4 de diciembre de 2009

Borrar una Tabla [MICRO]

¿Qué le ocurre a una consulta si borramos la tabla mientras se esta ejecutando?

Es la pregunta que apareció el otro día en el blog de Jonathan Lewis "Oracle Scrachpad", tal como comentan es una pregunta más "académica" que "practica", pero siempre esta bien clarificar conceptos.

Antes de nada, evidentemente, si hay una transacción sobre la tabla, no podremos borrarla. Comentar que si alguien realiza la prueba, necesitará una tabla lo suficientemente grande como para lanzar el DROP antes de que finalice la consulta.

Para borrarla existen dos opciones y dependen del trato de la papelera de reciclaje. Si señores, Oracle a partir de la versión 10g dispone de una Papelera de Reciclaje.
  1. Sin Purgar. Solo se ha renombrado el objeto en el diccionario de datos, por lo que la consulta finalizará correctamente: DROP TABLE emp;
  2. Con Purgado. DROP TABLE emp PURGE; Aparecerá el siguiente error: ORA-08103: object no longer exists
No dudéis en omitir la clausula PURGE en vuestro entornos productivos.

No hay comentarios: