imp导入数据指定表空间,大致有以下几种方法可以:
1. 有一个简单的方法,适用于数据比较少的情况:直接使用UltraEdit打方DMP文件,默认是16进制,切换成文本模式,将里面的:TABLESPACE "TS1"全部替换成TABLESPACE "TS2",然后再导入,不用加什么tablespaces=TS2之类的参数即可,当然加了也无所所谓。
C:\>IMP USER2/USER2 log=C:\plsimp.log file=D:\database\USER1.dmp fromuser=USER1 touser=USER2 ignore=yes tablespaces=TS2
不过有个缺点,如果DMP文件有几百M甚至几G,嘿嘿嘿嘿,不知道UltraEdit有啥反应?
2. 还有另外一种比较好的方法。基本思路都是先从 USER1导出表结构(DMP或者SQL脚本),然后在USER2用户下创建空的数据库表(如果是DMP,则参见方法1;如果是SQL脚本,则稍作修改后以USER2用户执行即可),再将包括数据的DMP导入,注意要设IGNORE=Y,并指定FROMUSER和TOUSER。具体实现方法为:
(1)先用工具导出USER1的表结构(不要导出CHECK和FK,特别是FK!),TOAD和 PL/SQL都有此功能。PL/SQL Developer导出表结构:Tools-->Export User Objects(导出用户对象) -->选择要导出的表(包括Sequence等)-->.sql文件,导出的都为sql文件。或者使用imp的indexfile选项生成表结构的SQL脚本。
(2)在USER2用户下创建相同的表结构
(3)导入完整的数据
PS:
PL/SQL Developer工具操作步骤:
(1)导出表结构:
Tools-->Export User Objects(导出用户对象) -->选择要导出的表(包括Sequence等)-->.sql文件,导出的都为sql文件
(这一步也可以导出一个只包括表结构的DMP文件。)
(2)导出表数据:
Tools-->Export Tables-->选择表,选择SQL Inserts-->.sql文件
(这一步也可以导出一个包括表结构和数据或者只有数据没有表结构图的DMP文件。)
(3)导入表结构:
执行刚刚导出的sql文件,记住要删掉table前的用户名,比如以前这表名为sys.tablename,必须删除sys
(如果是只包括表结构的DMP文件,则使用UltraEdit修改表空间,再导入。如方法1)
(4)导入表数据:
执行刚刚导出的sql文件
(如果是DMP文件,则直接导入即可,注意要设IGNORE=Y,并指定FROMUSER和TOUSER。)
IMP命令操作步骤:
首先:exp user/pw file=file.dmp owner=yourUser1
然后:imp user/pw file=file.dmp indexfile=xxxx.sql fromuser=yourUser1 touser=yourUser2
随后:修改xxxx.sql中的关于有表空间设置的地方为新的表空间,并去掉相关的注释(rem),然后执行xxxx.sql创建相关对象。
最后:imp user/pw file=file.dmp fromuser=yourUser1 touser=yourUser2 ignore=y
分享到:
相关推荐
"ORACLE导入数据文件到指定的表空间"这个主题涉及了Oracle数据库的导入工具(IMP)、数据泵(IMPDP)以及如何规划和管理表空间。 首先,我们需要了解Oracle的导入工具IMP。IMP是Oracle Data Pump Import的简称,它...
如果在导入数据时遇到用户没有足够的表空间权限的情况,还需要进行以下操作: 1. **撤销无限表空间权限**: ```sql revoke unlimited tablespace from ; ``` 2. **设置默认表空间和配额**: ```sql alter ...
### Oracle数据库中IMP导入数据详解 #### 一、引言 在Oracle数据库管理与维护过程中,数据导入是一项非常重要的操作。对于刚接触Oracle的新手来说,掌握如何使用`IMP`命令进行数据导入尤为关键。本文将详细介绍...
- 导入数据示例: - 导入到指定用户:`impdp system/manager DIRECTORY=db_bak DUMPFILE=expdp.dmp SCHEMAS=system` - 更改表的所有者:`impdp system/manager DIRECTORY=db_bak DUMPFILE=expdp.dmp TABLES=...
通过上述步骤,可以从一个现有的Oracle环境中导出DMP文件,并将其导入到不同的表空间和不同的用户下,从而实现数据的有效迁移和管理。这种方式在进行数据迁移、测试环境搭建等方面非常实用,能够有效避免数据丢失和...
exp工具将这些信息写入一个.dmp文件,该文件可以在不同的Oracle环境之间传输,并使用imp工具重新导入。 22、exp语法和参数 exp命令支持多种参数,例如 owner(用户)、file(输出文件名)、log(日志文件)、tables...
### Oracle 数据库表空间管理与数据导入导出详解 #### 表空间概念及管理 在Oracle数据库中,**表空间**是逻辑存储结构的一部分,用于组织数据库中的数据和索引。一个表空间由一个或多个数据文件组成,这些数据文件...
Oracle数据导入导出是数据库管理中的重要操作,用于在不同环境之间转移数据,备份或恢复数据,以及在系统升级或迁移时保持数据完整性。Oracle提供了一对工具,即IMP(Import)和EXP(Export),来执行这些任务。下面...
Oracle 19c 备份恢复-导入导出是指使用 Oracle 数据库提供的工具 exp 和 imp 实现数据库的备份恢复和数据的导入导出。本文将详细介绍 Oracle 19c 备份恢复-导入导出的基本命令、工作方式、模式、选项和高级选项。 ...
Oracle 数据导入导出是数据库管理中的重要操作,用于在不同环境之间转移数据,备份和恢复数据,以及进行数据迁移。本文将深入探讨Oracle数据库的数据导入导出机制,包括使用的主要工具、过程和最佳实践。 Oracle ...
`impdp`(Import Data Pump)是Oracle提供的一种高效的数据导入工具,它能够实现表空间、表或整个数据库的快速导入,相比传统`imp`命令,在性能和功能上都有显著提升。下面将详细介绍`impdp`的一些关键选项及其应用...
### Oracle 创建用户、表空间及导入导出命令详解 #### 一、创建表空间 在 Oracle 数据库中,表空间是存储数据的基本单位。表空间由一个或多个数据文件组成,用于存储表、索引等数据库对象。创建表空间通常包括创建...
如果遇到不同 Oracle 版本之间的 compatibility 问题,可以使用 TRANSPORT_TABLESPACE 参数来传输表空间元数据。 Oracle 数据库的导入导出命令是数据库管理员的重要工具,对于这些命令的熟悉和掌握是非常重要的。...
Oracle 数据泵(Data Pump)是Oracle数据库从10g版本开始引入的一种高效的数据导入和导出工具,相较于传统的EXP和IMP工具,它在处理大量数据时具有显著的性能优势。本文将详细介绍数据泵的主要特点、工作原理以及...
- **表空间**: 表空间是Oracle数据库中逻辑存储单元的集合,用于组织和管理数据。它具有以下特性: - 控制数据库数据的磁盘分配。 - 可以限制用户在特定表空间中使用的磁盘大小。 - 表空间可以设置为离线...
- **表空间准备**:在导入数据之前,确保目标数据库有足够的表空间。如果源数据库的表空间与目标数据库不同,需要创建相应的表空间以匹配源数据库的结构。 - **权限管理**:在导入导出过程中,确保用户具有必要的...
Oracle的`exp`工具用于将指定的表、用户或其他数据库对象导出为一个二进制文件(即.DMP文件),以备后续使用。 ### 二、准备工作 在进行导入导出操作之前,需要确保以下几个方面已经完成: 1. **创建用户**:如果...
接下来,尝试导入数据: ```sql imp test/test fromuser=try touser=test file=/try.dmp log=test.log ``` 这里 `test` 是目标数据库的用户名,同样 `test` 是密码,`fromuser=try` 和 `touser=test` 指定了源用户和...