10

我在 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

4

6 回答 6

15

像这样试试

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
于 2013-09-19T08:59:19.020 回答
3

在 oracle 11g 中导入转储文件

在 SQL 命令行中,

  1. CREATE USER 用户名由密码识别

  2. 将 dba 授予用户名;

在命令行中,

  1. imp userid=username/password FULL=y FILE="D:\yourdumpfilename.dmp"

注意..确保您的转储文件的路径。

于 2013-12-16T09:58:46.860 回答
2

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

于 2013-09-19T08:23:04.613 回答
2

@user2794543

转到您的命令提示符(桌面上的 Ctrl+R -> 在搜索框中键入cmd -> 按 Enter -> 您将进入命令提示符)。

现在,将您的目录更改为根 C:(输入“cd..” -> 按 Enter -> 输入“cd..” gain -> 按 Enter -> 现在您位于根 C: 目录)。

接下来,您必须使用"imp"而不是"impdp"导入。键入以下命令行:

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

点击进入并等待流程。

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

于 2017-03-20T07:26:35.870 回答
0

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

于 2018-01-20T06:30:22.003 回答
0

下面的例子对我有用:

imp userid=solfis/solfis  file=fissetup_110.dmp full=y;
于 2021-07-24T11:58:59.267 回答