请问有没有什么方法将dmp文件导入到指定的表空

系统 1517 0
我从一个数据库中导出来的dmp文件,它的表空间是user,现在我想导入到另一个数据库中去,在那个数据库中我建立了一个aaa的用户,使用的是aaa 的表空间。可用aaa用户导入dmp文件后发现那些表使用的仍然是user表空间,我该怎么办呢?能在导入的时候就指定为aaa的表空间吗?  
改变数据库表的表空间的方法有没有比较简单的方法?不用卸载表,然后修改sql语句那么麻烦的动作???  
方法其实很简单,如下:  
1、先不要授予你这个新的aaa这个用户太高的权限,比如dba的角色及quota   unlimited   tablespace这个系统权限。  
2、只授予aaa在aaa表空间的unlimited权限,在user表空间没使用权限  
sql>alter   user   aaa   quota   unlimited   on   aaa;  
sql>alter   user   aaa   quota   0   on   user;  
3、在你做imp时指ignore=y选项就可以了,这样imp进来的表就使用aaa的默认表空间了。

当然有办法改变一个表存储表空间,使用以下命令即可:  
alter   table   table_name   move   tablespace   tablespace_name;

使用命令得到移动表空间的语句  
select   'alter   table   '||table_name||'   move   tablespace   aaa;'   from   all_tables   where   tablespace_name=   'user'   and   owner=   'aaa';  
然后执行生成的语句即可  

当然,一般还需要在新的表空间中重建索引  
select   'alter   index   '||index_name   ||'   rebuild   tablespace   aaa_index;'   from   dba_indexs   where   tablespace_name=   'user'   and   owner=   'aaa';  
然后执行生成的语句即可

请问有没有什么方法将dmp文件导入到指定的表空间去?或者怎样改变数据库所有表所在的表空间


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论