miércoles, octubre 24, 2012

oracle, impdp error ORA-39070

A vece te ocurre un error en la import datapump de Oracle, que no identifica claramente lo que está ocurriendo.

Éste es el caso del error ORA-39070: Unable to open the log file.


ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation

Antes de volverte loco examinando el paquete UTL_FILE, ten en cuenta lo siguiente:

ORACLE utiliza UTL_FILE para leer o escribir ficheros de texto. Cuando utilizas la import datapump (impdp) tienes que indicar el directorio con el parámetro DIRECTORY=

En DIRECTORY no se pone directamente el directorio, sino que antes de lanzar el impdp tiene que existir el objeto tipo directorio. Podemos crearlo con un fichero SQL como éste:

CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS '/mis_exports/lunes/';
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO SYSTEM;
EXIT;

Pues si el directorio está mal indicado, o si no existe el objeto DATA_PUMP_DIR (en mi ejemplo), o no hemos dado el GRANT al usuario que lanza la import, ORACLE no será capaz de escribir el fichero de LOG y fallará el impdp dando el error indicado.

Saludos,

No hay comentarios: