Solución al problema del Oracle Exp (export) que no exporta tablas vacías.

Pues eso amig@s,

Si estamos trabajando con la utilidad de exportación de datos de oracle EXP y tenemos problemas para que exporte tablas vacías, lo que debemos hacer es lo siguiente:

Ejecutamos ésta consulta como SYS:

select 'alter table '||table_Name||' allocate extent;' from user_Tables where temporary='N' and table_name not in (select segment_name from user_segments)

Si hay resultado, tienen este aspecto:

alter table AQ$_ALERT_QT_G allocate extent;
alter table AQ$_ALERT_QT_H allocate extent;
alter table AQ$_ALERT_QT_I allocate extent;
alter table AQ$_ALERT_QT_T allocate extent;

Si nos aparecen datos, copiamos el resultado de la query y lo pegamos en el cliente sql que estemos utilizando (sqlplus, toad, etc).

Con lo que ya podremos realizar un export de un esquema en el que se incluyan tablas vacías. Esto es una particularidad implementada a partir de la 11.2.0.1 y se le llama Deferred Segment Creation.

Espero que les resulte útil.

Salu2.
Share on Google Plus
    Blogger Comment

1 comentarios:

Carlos Quiroz dijo...

Hola Amigo, una consulta.

Ejecute la sentencia indicada para exportar tablas sin data pero aun siguen sin aparecen el total de tablas vacías.

Por ejemplos antes de la sentencia me extrajo 150 tablas después de la sentencia me extrajo 170 de un total de 202, las 32 que faltan ninguna tiene data.

tendrás alguna idea de por que podrá suceder ??
la sentencia que utilizo es la siguiente.

exp system/*******@orcl file=c:\system.dmp full=y buffer=1000000 log=c:\system_log.log


saludos