Oracle 11g dmp导入。 ORA-39000 / ORA-39143错误

时间:2013-09-19 08:17:33

标签: oracle import oracle11g

我在oracle和数据库中真的很新。 对于一个可能很愚蠢的问题感到抱歉。

这是我的问题。我有一个数据库导出(不是我的,所以我不知道它是如何导出的:是否存在差异?)并且我想用以下脚本导入它:

@Echo off
Break off
Rem fullimpdp.cmd
set NLS_LANG=american_america.WE8MSWIN1252
set ORACLE_HOME=C:\Oracle\ora11
Set DUMP_HOME=C:\DBDump
set /p ORACLE_SID="Oracle_sid = "
set /p FILE="Dump file name = "
if exist %DUMP_HOME%SetBackupDir_%ORACLE_SID%.sql del /F /Q %DUMP_HOME%SetBackupDir_%ORACLE_SID%.sql
echo CREATE OR REPLACE DIRECTORY backup_dir AS '%DUMP_HOME%'; >%DUMP_HOME%SetBackupDir_%ORACLE_SID%.sql
echo CREATE OR REPLACE DIRECTORY dmpdir AS '%DUMP_HOME%'; >>%DUMP_HOME%SetBackupDir_%ORACLE_SID%.sql
echo commit; >>%DUMP_HOME%SetBackupDir_%ORACLE_SID%.sql
echo exit    >>%DUMP_HOME%SetBackupDir_%ORACLE_SID%.sql
set ORACLE_SID=%ORACLE_SID%
%ORACLE_HOME%\bin\sqlplus xpower/xpower @%DUMP_HOME%SetBackupDir_%ORACLE_SID%.sql
%ORACLE_HOME%\bin\impdp xpower/xpower FULL=y DIRECTORY=backup_dir DUMPFILE=%FILE% logfile=impdp_%ORACLE_SID%.log JOB_NAME=impfull_%Oracle_sid%
if exist %DUMP_HOME%SetBackupDir_%ORACLE_SID%.sql del /F /Q %DUMP_HOME%SetBackupDir_%ORACLE_SID%.sql
pause

但不会发生以下错误:

Connected to: Oracle Database 11g Release 11.2.0.3.0 - 64bit Production
ORA-39000: bad dump file specification
ORA-39143: dump file "C:\DBDump\ev122.dmp" may be an original export dump file

有什么问题?我该如何在这个脚本中修复它? 我怎么能不使用脚本导入文件?我读到了imp file = filename命令。但在哪里输入? :)

谢谢。

BR

6 个答案:

答案 0 :(得分:11)

试试这个,

imp xpower/xpower FULL=y file=<file_name>.dmp log=log_file_name.log

或者您可以使用系统用户

导入
imp system/<password> file=<file_name>.dmp log=log_file_name.log fromuser = <from_user_name> touser= xpower

答案 1 :(得分:2)

impdp命令用于导入数据泵导出的转储文件。尝试使用“imp”命令。

答案 2 :(得分:2)

在oracle 11g中导入转储文件

在SQL命令行中,

  1. 创建用户名IDENTIFIED BY password

  2. 将dba授予用户名;

  3. 在命令行中,

    1. imp userid = username / password FULL = y FILE =“D:\ yourdumpfilename.dmp”
    2. 注意..确保转储文件的路径。

答案 3 :(得分:2)

@ user2794543

转到 命令提示符 (桌面上的Ctrl + R - >输入 cmd 搜索框 - &gt;点击输入 - &gt;您将登陆命令提示符。

现在,将您的目录更改为root C :(键入“cd ..” - &gt;点击输入 - &gt;输入“cd ..”获取 - &gt ;点击输入 - &gt;现在你在根C:目录)。

接下来,您必须使用“imp”而非“impdp”导入。键入以下命令行:

imp userid=system/[password]  file=[drive]:\[folder]\[dump_file_name].dmp full=y;

按Enter键并等待处理流程。

*忽略方括号。它们仅供参考。

答案 4 :(得分:0)

DMP由Oracle 12c的imp.exe实用程序导出,我尝试通过Oracle 11g的imp.exe导入时出错。我的解决方案是:将imp.exe从12c复制并粘贴到11g ... \ bin文件夹并成功导入。

答案 5 :(得分:0)

下面的例子对我有用:

imp userid=solfis/solfis  file=fissetup_110.dmp full=y;