用UltraEidt修改dmp文件把内容导到指定的表空间

问题:

  当我们一个从Oracle10g中用PLSQL导出的备份文件t_pipeline.dmp,放在C盘根目录下;

  在一个新装的Oracle10g系统环境里,先建了个pipeline的表空间,然后建了个pipeline的用户,设置好pipeline用户使用pipeline表空间;

  这个新的数据库环境中原本存在表空间t_pipeline,假设其对应用户t_pipeline;

  用命令

 

imp pipeline/pipeline@orcl fromuser=t_pipeline touser=pipeline file=C:\t_pipeline.dmp

 

  这样在导入dmp文件时,会默认导入到t_pipeline这个表空间中,而不会导入到你希望导入的dccp表空间中,这是怎么回事?

 

解答:

  从Oracles10g中用PLSQL导出dmp文件的这种方式,导出后不管用什么用户再导入,默认还是导入到原来导出时的表空间,

  如果目标数据库不存在同名表空间,则会报错。我们需要借助文本编辑工具,如UltraEdit对dmp文件进行编辑,修改其表空间。

 

解决:

  1、用UltraEdit打开t_pipeline.dmp文件,看到很多二进制码;

  2、按下ctrl+H,会出现很多创建表结构的语句;

  3、替换所有的TABLESPACE 'T_PIPELINE'TABLESPACE 'PIPELINE'

  4、注意,再按下ctrl+H,之后保存。

  这样用上文提到的imp命令,就可将文件数据导入到pipeline的表空间中。

 

总结:

  对于数据库表对应表空间的问题,我个人觉得,最好是同用户下的数据表,存储在同一个表空间,这样便于维护。

  非特殊情况,不要存储到系统用户对应的表空间下。

转载于:https://www.cnblogs.com/Vinsanity/archive/2012/02/08/2342471.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值