使用DBMS_REDEFINITION在线重定义分区表

2024-02-01 09:08

本文主要是介绍使用DBMS_REDEFINITION在线重定义分区表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

创建一个非分区表,注意两个表的表结构和字段类型一致.

SQL> CREATE TABLE tab_unpart
2 (
3 col1 varchar2(30),
4 col2 DATE
5 );TABLE created.
SQL> INSERT INTO tab_unpart(col1, col2) SELECT -1, sysdate-365 FROM dual;1 ROW created.SQL> INSERT INTO tab_unpart(col1, col2) SELECT 0, sysdate FROM dual;1 ROW created.SQL> INSERT INTO tab_unpart(col1, col2) SELECT +1, sysdate+360 FROM dual;1 ROW created.SQL> commit;Commit complete.SQL> SELECT col1,to_char(col2,'yyyy-mm-dd') FROM tab_unpart;COL TO_CHAR(CO
--- ----------
-1  2011-01-05
0   2012-01-05
1   2012-12-30

创建一个分区表

SQL> CREATE TABLE tab_part2  (3  col1 varchar2(30),4  col2 DATE5  )6  partition BY range(col2)7  (8  partition tab_part_2011 VALUES less than (to_date('2011-01-01','yyyy-mm-dd')),9  partition tab_part_2012 VALUES less than (to_date('2012-01-01','yyyy-mm-dd')),10  partition tab_part_2013 VALUES less than (to_date('2013-01-01','yyyy-mm-dd')),11  );TABLE created.SQL> @partition_NAME            OBJECT COLUMN_NAME PARTITIONING_TYPE    STATUS  PARTITION_NAME
--------------- ------ ----------- -------------------- ------- ---------------
TAB_PART        TABLE  COL2        RANGE                VALID   TAB_PART_2013
TAB_PART        TABLE  COL2        RANGE                VALID   TAB_PART_2011
TAB_PART        TABLE  COL2        RANGE                VALID   TAB_PART_2012

验证表TAB_UNPART是否可以在线重定义,如果不可以会给出建议

SQL> EXEC dbms_redefinition.can_redef_table('TEST','TAB_UNPART',1);
BEGIN dbms_redefinition.can_redef_table('TEST','TAB_UNPART',1); END;*
ERROR at line 1:
ORA-12089: cannot online redefine TABLE "TEST"."TAB_UNPART" WITH no PRIMARY KEY
ORA-06512: at "SYS.DBMS_REDEFINITION", line 139
ORA-06512: at "SYS.DBMS_REDEFINITION", line 1782
ORA-06512: at line 1

给两张表添加主键

SQL> ALTER TABLE TAB_UNPART ADD CONSTRAINT pk_unpart_col1 PRIMARY KEY (COL1);TABLE altered.SQL> ALTER TABLE TAB_PART ADD CONSTRAINT pk_part_col1 PRIMARY KEY (COL1);TABLE altered.

再次验证

SQL> EXEC dbms_redefinition.can_redef_table('TEST','TAB_UNPART',1);PL/SQL PROCEDURE successfully completed.

使用DBMS_REDEFINITION将非分区表转为分区表

SQL> @partition_NAME            OBJECT COLUMN_NAME PARTITIONING_TYPE    STATUS  PARTITION_NAME
--------------- ------ ----------- -------------------- ------- ---------------
TAB_PART        TABLE  COL2        RANGE                VALID   TAB_PART_2013
TAB_PART        TABLE  COL2        RANGE                VALID   TAB_PART_2011
TAB_PART        TABLE  COL2        RANGE                VALID   TAB_PART_2012SQL> BEGIN2  DBMS_REDEFINITION.CAN_REDEF_TABLE('TEST','TAB_UNPART',2);3  DBMS_REDEFINITION.START_REDEF_TABLE('TEST','TAB_UNPART','TAB_PART',NULL,2);4  DBMS_REDEFINITION.FINISH_REDEF_TABLE('TEST','TAB_UNPART','TAB_PART');5  END;6  /PL/SQL PROCEDURE successfully completed.SQL> @partition_NAME            OBJECT COLUMN_NAME PARTITIONING_TYPE    STATUS  PARTITION_NAME
--------------- ------ ----------- -------------------- ------- ---------------
TAB_UNPART      TABLE  COL2        RANGE                VALID   TAB_PART_2013
TAB_UNPART      TABLE  COL2        RANGE                VALID   TAB_PART_2011
TAB_UNPART      TABLE  COL2        RANGE                VALID   TAB_PART_2012
SQL> SELECT * FROM tab_unpart partition (TAB_PART_2012);COL COL2
--- ------------
-1  05-JAN-11SQL> SELECT * FROM tab_unpart partition (TAB_PART_2011);no ROWS selectedSQL> SELECT * FROM tab_unpart partition (TAB_PART_2013);COL COL2
--- ------------
0   05-JAN-12
1   30-DEC-12




这篇关于使用DBMS_REDEFINITION在线重定义分区表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666771

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

电力系统中的A类在线监测装置—APView400

随着电力系统的日益复杂和人们对电能质量要求的提高,电能质量在线监测装置在电力系统中得到广泛应用。目前,市场上的在线监测装置主要分为A类和B类两种类型,A类和B类在线监测装置主要区别在于应用场景、技术参数、通讯协议和扩展性。选择时应根据实际需求和应用场景综合考虑,并定期维护和校准。电能质量在线监测装置是用于实时监测电力系统中的电能质量参数的设备。 APView400电能质量A类在线监测装置以其多核

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的