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


    我从一个数据库中导出来的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';  
    然后执行生成的语句即可
  • 相关阅读:
    ksframework的xlua版本
    unity摄像机脚本
    代码重构:用工厂+策略模式优化过多的if else代码块
    在Unity中创建攻击Slot系统
    Unity运用GPU代替CPU处理和计算简单测试
    程序员工具集
    Unity开发-你必须知道的优化建议
    unity向量计算
    ClassFoo-IT知识花园
    BZOJ 3446: [Usaco2014 Feb]Cow Decathlon( 状压dp )
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400387.html
Copyright © 2020-2023  润新知