expdp 中ORA-39002、ORA-39070错误详解及解决办法
1. ORA-39002 错误
在使用导出数据命令 expdp
过程中,运行期间可能会遇到 ORA-39002 错误,该错误提示:
ORA-39002: 无效的操作
这种错误通常是因为在使用 expdp
命令时所填写的参数有误,例如不符合规范、缺少必要的参数等等。在这种情况下,应当检查所填写的参数是否存在错误,及时修正并重新运行命令。
2. ORA-39070 错误
expdp
命令还可能会出现 ORA-39070 错误,该错误提示:
ORA-39070: 无法单独生成数据泵作业
这种错误通常是因为在执行 expdp
命令时所指定的导出配置文件中存在错误。一般情况下,可以通过检查导出配置文件的语法及指令等方面进行排查。
具体来说,可以通过以下步骤进行解决:
2.1. 确认导出配置文件的路径
首先,需要确认所指定的导出配置文件的路径是否正确。如果路径存在误差,则应该修正该路径。
2.2. 确认导出配置文件的语法
其次,需要检查导出配置文件本身的语法是否存在错误。可以使用如下命令对配置文件进行语法检查:
impdp system/password parfile=export.par CONTENT=METADATA_ONLY DIRECTORY=mydir
其中:
system/password
:数据库账号和密码;parfile=export.par
:导出配置文件;CONTENT=METADATA_ONLY
:仅导出元数据信息;DIRECTORY=mydir
:导出文件所在的目录。
如果导出配置文件存在语法错误,则会提示具体的错误信息,我们可以根据错误信息对导出配置文件进行修正,修正后重新执行 expdp
命令。
3. 解决示例
3.1. ORA-39002 解决示例
假设我们需要导出账户名为 hr
的用户数据,则可以使用如下命令:
expdp hr/hr@orcl DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp
运行上述命令时,可能会提示 ORA-39002 错误,即:
ORA-39002: 无效的操作
这种情况下,应当检查所填写的参数是否存在错误,可以检查一下是否少了必要的参数,修改命令为:
expdp hr/hr@orcl DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp SCHEMAS=hr
即可正常运行。
3.2. ORA-39070 解决示例
假设我们需要导出账户名为 hr
的用户数据,导出配置文件 export.par
内容如下:
USERID=hr/hr@orcl
DIRECTORY=dpump_dir1
DUMPFILE=hr.dmp
SCHEMAS=hr
当我们运行如下命令时:
expdp parfile=export.par
可能会提示 ORA-39070 错误,即:
ORA-39070: 无法单独生成数据泵作业
此时,我们可以先使用 impdp
命令对导出配置文件进行语法检查:
impdp system/password parfile=export.par CONTENT=METADATA_ONLY DIRECTORY=mydir
运行上述命令时,如果存在语法错误,则会提示具体的错误信息,例如:
ORA-39014: 未定义的报错
ORA-00900: 无效的 SQL 语句
Failing SQL is:
begin dbms_datapump.set_parallelism(null); dbms_datapump.set_job_instance(wq,0,1); end;
ORA-06512: 在 line 1
根据提示的具体错误信息,我们可以对导出配置文件进行修正,修正后再次运行 expdp
命令即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:expdp 中ORA-39002、ORA-39070错误详解及解决办法 - Python技术站