0

我正在尝试导入从 Oracle(不同环境)导出的.dmp文件。

在 SQL 命令行中,我尝试了以下操作

打开运行 SQL 命令行

第一步:以系统用户登录

   SQL> connect system/admin

第2步 : SQL> CREATE USER UserName IDENTIFIED BY Password;

第 3 步: SQL> grant dba to Bala;

第4步: SQL> GRANT UNLIMITED TABLESPACE TO Bala;

第 5 步:

 SQL> CREATE BIGFILE TABLESPACE TSD_UserName
         DATAFILE 'tbs_perm_03.dat'
         SIZE 8G
         AUTOEXTEND ON;

最后在windows中,打开cmd.exe

第 6 步: C:\> imp bala/admin@localhost file=D:\abc\xyz.dmp log=D:\abc\abc_1.log full=y;

过了一会儿,终端窗口给了我一些这样的错误消息在此处输入图像描述

注意:我也尝试在 SQL 开发人员中导入它并收到错误消息

4

1 回答 1

0

您可能希望使用参数“FROMUSER”和“TOUSER”,以便 IMP 知道将导入数据放置在何处。如果数据属于导出数据的数据库中的不同用户,您至少需要指定数据的新所有者。如果 .exp 文件中有来自多个用户的数据,您还需要指定要导入哪个用户的数据。

也许你想看看这个:http ://www.orafaq.com/wiki/Import_Export_FAQ

如果所有必需的用户都在新数据库中可用,则 FULL=Y 可能会起作用。在下一次尝试之前,我可能会创建用户/模式“商店”、“销售”等。通常应该在完全导入期间完成,但几年前我有过类似的经历。我编辑了转储文件并将所有“CREATE USER/SCHEMA/TABLESPSACE”语句复制到命令行窗口中,执行它们,然后导入工作正常。

顺便说一句:如果要将所有导入的对象存储在新表空间中,则 FULL=Y 不会这样做,除非它们都已配置为将其用作转储文件中的默认表空间。

于 2017-06-15T10:24:04.937 回答