¿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.
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.
- Sin Purgar. Solo se ha renombrado el objeto en el diccionario de datos, por lo que la consulta finalizará correctamente: DROP TABLE emp;
- Con Purgado. DROP TABLE emp PURGE; Aparecerá el siguiente error: ORA-08103: object no longer exists

Esta obra está bajo una licencia de Creative Commons.


0 comentarios:
Publicar un comentario en la entrada