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 使用IMP命令导入数据时 经常会碰到乱码问题,本文档从根本上解决了导入数据乱码根源及解决办法
NULL 博文链接:https://duqiangcise.iteye.com/blog/734041
在实际工作中,有时需要将exp导出的历史备份dmp文件进行恢复,若之前的建表语句及表空间名无法找到,则直接用imp语句进行导入的话可能...使用本文方法可将exp导出的数据用imp导入不同的表空间,从而有效解决此问题。
一般的做法是直接删除表空间然后imp导入数据,但是我这边的情况是远程有一个web始终连着,为了免得每天还要去启动那个web服务,我就采用了这个做法,只删除表,这样不会断开连接,注意,这个web只是白天在用。...
Oracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp....
我乃新手,导入数据时走了很多弯路,特发此文,望可帮助像我这样的新手。
oracle备份出来的数据可以导入到另一表空间.txt
能够解决oracle导入时表空间不一致问题。不错,已经帮助我好几次了,共享下!
oracle导入数据实例,使用导入脚本进行导入数据到oracle中
基于Oracle导入数据的imp详细学习资料,注明:不是本人所写,我也不知道从哪弄到的!
oracle不同用户名及表空间之间的数据导入
imp方式批量导入dmp文件。oracle数据库bat脚本。需要配置数据库的链接信息和dmp路径信息。
oracle数据导入导出imp/exp命令使用说明
我以前一直使用users表空间作为默认空间,最近想把现有用户的数据都转到一 个新建的表空间中,可是发现Imp后所有表还是在users表空间...还有指定user的表空间分配额度(quota),以及先导入然后更改表的表空间的 办法。
Oracle创建表空间、创建用户并指定表空间、给用户授予权限
oracle定时删除表空间的数据并释放表空间(oracle编程高手总结编写)
Oracle利用传输表空间导出导入数据的步骤,对于DBA来说绝对实用!
imp方式批量oracle数据库bat脚本,bat文件中有标明配置数据库的链接信息和.dmp路径信息
exp、imp导入数据乱码、plsql中文乱码,显示问号,还操作手册。