Sunday, August 9, 2015

Oracle expdp error: directory object parameter must be specified and non-null

When dumping a database as an non-privileged user (grants: CONNECT, RESOURCE) using Oracle Data Pump tool I got the following error:

 expdp tax_data/<passwd> schemas=tax_data dumpfile=tax_data.dmp logfile=expdp_tax_data.log  

 ORA-39002: invalid operation  
 ORA-39070: Unable to open the log file.  
 ORA-39145: directory object parameter must be specified and non-null  

This happens because non-privileged users don't have access to the DATA_PUMP_DIR directory object. To solve that all I had to do was grant the roles EXP_FULL_DATABASE and IMP_FULL_DATABASE to the user.

If the DATA_PUMP_DIR has not been created by a DBA beforehand, one would get a different message:

 ORA-39002: invalid operation   
 ORA-39070: Unable to open the log file.   
 ORA-39087: directory name DATA_PUMP_DIR is invalid   

To check what is the value of the DATA_PUMP_DIR:

 select * from dba_directories where DIRECTORY_NAME = 'DATA_PUMP_DIR';  

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.