广告
返回顶部
首页 > 资讯 > 数据库 >普通表转分区表(在线重定义)
  • 525
分享到

普通表转分区表(在线重定义)

2024-04-02 19:04:59 525人浏览 八月长安
摘要

确认表是否可以分区 sql> BEGIN   2  DBMS_REDEFINITioN.CAN_REDEF_TABLE('SCOTT','EM

确认表是否可以分区

sql> BEGIN

  2  DBMS_REDEFINITioN.CAN_REDEF_TABLE('SCOTT','EMP',DBMS_REDEFINITION.CONS_USE_PK);

  3  END;

  4  /

 

创建临时表

CREATE TABLE "SCOTT"."EMP_TMP"

   (    "EMPNO" NUMBER(4,0),

        "ENAME" VARCHAR2(10),

        "JOB" VARCHAR2(9),

        "MGR" NUMBER(4,0),

        "HIREDATE" DATE,

        "SAL" NUMBER(7,2),

        "COMM" NUMBER(7,2),

        "DEPTNO" NUMBER(2,0)

)

PARTITION BY RANGE (DEPTNO)

(

  PARTITION EMP_A1 VALUES LESS THAN (20),

  PARTITION EMP_A2 VALUES LESS THAN (30),

  PARTITION EMP_A3 VALUES LESS THAN (40),

  PARTITION EMP_A4 VALUES LESS THAN (50),

  PARTITION EMP_A5 VALUES LESS THAN (60)

      )

开始执行数据迁移

EXEC DBMS_REDEFINITION.START_REDEF_TABLE('SCOTT', 'EMP', 'EMP_TMP');

 

如果可能继续对emp表进行更新写入则

BEGIN 
  DBMS_REDEFINITION.SYNC_INTERIM_TABLE('SCOTT', 'EMP', 'EMP_TMP');
END;
/(可选过程)

 

 

 

权限对象的迁移

DECLARE
num_errors PLS_INTEGER;
BEGIN
DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS('SCOTT', 'EMP','EMP_TMP',
DBMS_REDEFINITION.CONS_ORIG_PARAMS, TRUE, TRUE, TRUE, TRUE, num_errors);
END;
/

查询相关错误

查询相关错误,在操作之前先检查,查询DBA_REDEFINITION_ERRORS试图查询错误:
select object_name, base_table_name, ddl_txt from   DBA_REDEFINITION_ERRORS;

 

BEGIN
DBMS_REDEFINITION.FINISH_REDEF_TABLE('scott', 'emp', 'emp_TMP');
END;
/

如果执行过程中有错误 可以执行以下语句终止

BEGIN
DBMS_REDEFINITION.ABORT_REDEF_TABLE(uname => 'SCOTT',
orig_table => 'EMP',
int_table => 'EMP_TMP'
);
END; 

检验

 

SQL> SELECT tablespace_name ,PARTITIONED FROM ALL_TABLES WHERE TABLE_NAME = 'EMP_TMP';

 

TABLESPACE_NAME                PAR

------------------------------ ---

USERS                          NO

 

SQL>  SELECT tablespace_name ,PARTITIONED FROM ALL_TABLES WHERE TABLE_NAME = 'EMP';

 

TABLESPACE_NAME                PAR

------------------------------ ---

                               YES

查看分区信息

select   table_name,

        partitioning_type type,

        p.subpartitioning_type,

        p.partition_count

   from   user_part_tables p;

                                             



您可能感兴趣的文档:

--结束END--

本文标题: 普通表转分区表(在线重定义)

本文链接: https://www.lsjlt.com/news/47479.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 普通表转分区表(在线重定义)
    确认表是否可以分区 SQL> BEGIN   2  DBMS_REDEFINITION.CAN_REDEF_TABLE('SCOTT','EM...
    99+
    2022-10-18
  • 在线重定义 ?普通表转换成分区表
    --收集表的统计信息 ...
    99+
    2022-10-18
  • oracle 11g在线重定义 普通表变分区表
    第一种方法    使用主键id进行重定义--create user test identified by 1 account unlock; --grant...
    99+
    2022-10-18
  • oracle如何实现在线重定义与普通表改为分区表
    小编给大家分享一下oracle如何实现在线重定义与普通表改为分区表,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、什么是在线重定义要了解什么是在线重定义技术,我想从表分区开始说起。在生产...
    99+
    2022-10-18
  • ORACLE分区表转换在线重定义DBMS_REDEFINITION
    目录一、DBMS_REDEFINITION(在线重定义)使用在线重定义的一些限制条件:DBMS_REDEFINITION包:二、在线重定义表的步骤1.创建未分区的表2.确认表是否存在主键,表空间是否足够,收集表统计信息。...
    99+
    2022-07-07
    ORACLE分区表转换在线重定义 ORACLE分区表转换DBMS_REDEFINITION
  • MySQL普通表如何转换成分区表
    小编给大家分享一下MySQL普通表如何转换成分区表,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-18
  • MySQL普通表怎么转换成分区表
    本篇内容介绍了“MySQL普通表怎么转换成分区表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!版本:MySQL-5.7.32前言:对于业务繁...
    99+
    2023-06-30
  • oracle普通表转化为分区表的方法
    上一篇文章中我们了解了oracle数据与文本导入导出源码示例的相关内容,接下来我们看看,oracle中如何将普通表转化为分区表的方法。 oracle官方建议当表的大小大于2GB的时候就使用分区表进行管理,分...
    99+
    2022-10-18
  • mysql的普通表怎么转换成分区表
    这篇文章主要讲解了“mysql的普通表怎么转换成分区表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql的普通表怎么转换成分区表”吧! ...
    99+
    2022-10-18
  • SQL中怎么将普通表转换为分区表
    SQL中怎么将普通表转换为分区表,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码如下: CREATE TABLE Sale( ...
    99+
    2022-10-18
  • ORACLE 在线表重定义
    ORACLE 在实际中一些表由于业务量增大,一些原先规划不是很大的表的数据量大增,为了优化要把这些表从普通表变成分区表。现在就介绍ORACLE自带的一种技术来处理这种情况-这种技术叫在线表重定义。第一步建立...
    99+
    2022-10-18
  • Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法
    一. 分区表理论知识Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。Oracle的分区...
    99+
    2022-10-18
  • 数据库中怎么将一个普通表转换为分区表
    这篇文章给大家分享的是有关数据库中怎么将一个普通表转换为分区表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.1  BLOG文档结构图 1.2  ...
    99+
    2022-10-18
  • Oracle 12.2新特性----在线把非分区表转为分区表
    在Oracle12.2版本之前,如果想把一个非分区表转为分区表常用的有这几种方法:1、建好分区表然后insert into select 把数据插入到分区表中;2、使用在线重定义(DBMS_RED...
    99+
    2022-10-18
  • Online Redefinition在线重定义(三)--多表关联重定义案例
    之前的两篇博文中,列举了两个单表在线重定义的过程: Online Redefinition在线重定义(一):http://blog.itpub.net/31015730/viewspace-214...
    99+
    2022-10-18
  • oracle在线重定义表有什么功能
    这篇文章主要讲解了“oracle在线重定义表有什么功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle在线重定义表有什么功能”吧!在线重定义表具有...
    99+
    2022-10-18
  • Online Redefinition在线重定义(二)--单表复杂案例
    在上一篇博文(Online Redefinition在线重定义(一))中,简单地介绍了Oracle在线重定义特性进行数据表在线结构变动操作。本篇博文将演示一个较复杂的案例,在案例的复杂变化中进行在线...
    99+
    2022-10-18
  • Oracle中怎么利用联机重定义给表增加新列与分区
    本篇文章给大家分享的是有关Oracle中怎么利用联机重定义给表增加新列与分区,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.用要执行联机重定...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作