oracle中table迁移表空间

前端之家收集整理的这篇文章主要介绍了oracle中table迁移表空间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

说明

oracle中调整表所归属的表空间。根据表中是否含有LOB、LONG类型字段,分成两种迁移方法

步骤

  • 表中不含LOB、LONG类型字段

    1. 使用DBA权限用户登录数据库,执行如下sql(注意替换sql中参数)
      select 'alter table '||T.OWNER||'.' ||T.TABLE_NAME || ' move tablespace XXX;' FROM dba_tables t where T.OWNER='YYY' AND T.TABLESPACE_NAME='ZZZ';
    2. 执行生成sql(注意替换sql中参数)
      alter table YYY.table_name move tablespace XXX;
    3. 重建索引
      alter index unm.index_name rebuild tablespace tablespace_name


  • 表中含LOB、LONG类型字段

    1. 使用exp工具导出表(注意替换命令中参数)
      exp unm/pwd@192.168.1.8:1521/orcl tables=umn.tablename file=d:\dmp\TABLE.dmp;
    2. 登录数据库删除原表
      drop tableumn.tablename;
    3. 修改表空间
      使用文本工具打开导出的表备份d:\dmp\TABLE.dmp,搜索并替换TABLESPACE “ZZZ”为TABLESPACE “XXX”
    4. 使用imp工具,将修改后的备份文件导回数据库
      imp unm/pwd@192.168.1.8:1521/orcl fromuser=unmtouser=unmfile=d:\dmp\TABLE.dmp;
    5. 重建索引
      alter index unm.index_name rebuild tablespace tablespace_name

猜你在找的Oracle相关文章