修改分区表的分区键键值情况
来源:互联网 发布:java工厂模式概念 编辑:程序博客网 时间:2024/05/16 02:11
--修改分区表的分区键键值情况分为两种情况:数据修改之后,它仍然属于原来的分区,这种修改在所有的分区机制中都没问题。数据修改之后,更新后的分区键值属于另外一个分区,按照个分区定义,这样的数据需跨分区移动。只有当表启用了行移动式时,这样的数据才能修改成功。EODA@PROD1> set echo onEODA@PROD1> EODA@PROD1> CREATE TABLE range_example --创建一个没有启动行移动的分区表 2 ( range_key_column date , 3 data varchar2(20) 4 ) 5 PARTITION BY RANGE (range_key_column) 6 ( PARTITION part_1 VALUES LESS THAN 7 (to_date('01/01/2014','dd/mm/yyyy')), 8 PARTITION part_2 VALUES LESS THAN 9 (to_date('01/01/2015','dd/mm/yyyy')) 10 ) 11 /Table created.EODA@PROD1> EODA@PROD1> insert into range_example --插入数据 2 ( range_key_column, data ) 3 values 4 ( to_date( '15-dec-2013 00:00:00', 5 'dd-mon-yyyy hh24:mi:ss' ), 6 'application data...' );1 row created.EODA@PROD1> EODA@PROD1> insert into range_example 2 ( range_key_column, data ) 3 values 4 ( to_date( '01-jan-2014 00:00:00', 5 'dd-mon-yyyy hh24:mi:ss' )-1/24/60/60, 6 'application data...' );1 row created.EODA@PROD1> EODA@PROD1> select * from range_example partition(part_1);RANGE_KEY DATA--------- --------------------15-DEC-13 application data...31-DEC-13 application data...EODA@PROD1> EODA@PROD1> update range_example --更改键值但是属于第一种情况 2 set range_key_column = trunc(range_key_column) 3 where range_key_column = 4 to_date( '31-dec-2013 23:59:59', 5 'dd-mon-yyyy hh24:mi:ss' );1 row updated.EODA@PROD1> EODA@PROD1> update range_example --更改键值但是属于第二种情况,更新失败 2 set range_key_column = to_date('01-jan-2014','dd-mon-yyyy') 3 where range_key_column = to_date('31-dec-2013','dd-mon-yyyy');update range_example *ERROR at line 1:ORA-14402: updating partition key column would cause a partition changeEODA@PROD1> EODA@PROD1> select rowid --查找rowid 2 from range_example 3 where range_key_column = to_date('31-dec-2013','dd-mon-yyyy');ROWID------------------AAAVESAAEAABRQ9AABEODA@PROD1> EODA@PROD1> alter table range_example enable row movement; --启用行移动Table altered.EODA@PROD1> EODA@PROD1> update range_example --更新成功 2 set range_key_column = to_date('01-jan-2014','dd-mon-yyyy') 3 where range_key_column = to_date('31-dec-2013','dd-mon-yyyy');1 row updated.EODA@PROD1> EODA@PROD1> select rowid --行rowid由于更新更改 2 from range_example 3 where range_key_column = to_date('01-jan-2014','dd-mon-yyyy');ROWID------------------AAAVETAAEAABRg9AAA--参考来源《Oracle编程艺术深入理解数据库体系结构(第三版)》
0 0
- 修改分区表的分区键键值情况
- oracle 利用在线重定义修改分区表的分区键
- MySQL 分区表 partition线上修改分区字段,后续进一步学习partition (2) --> 子分区以及对录入Null值的处理情况.
- MySQL 分区表 partition线上修改分区字段,后续进一步学习partition (2) --> 子分区以及对录入Null值的处理情况.
- Oracle分区表修改分区名
- 用WinHex直接修改磁盘分区表找回丢失的分区
- Greenplum分区表的使用过程出现创建不了分区的情况
- 修改主分区表给U盘分区
- 分区表添加分区的问题
- 分区表及分区索引(12)--修改list表分区
- 创建分区表+分区+分区表的分类+创建范围分区表+查询分区里面的数据
- 分区表与分区索引(一):范围分区表的操作
- 分区表与分区索引(二):范围分区表的数据管理
- 关于分区表及分区视图的用法
- 关于分区表及分区视图的用法
- 分区表分区字段的update操作
- 分区表和分区视图的优劣对比
- oracle分区表、分区索引的管理!
- Scala课堂-5-类型和多态类型
- Https证书系列
- lodash
- 【数据结构】B树(B-Tree)
- C#UDP通讯UdpClient
- 修改分区表的分区键键值情况
- Spark部署方式---Standalone
- 关于JBoss7.X修改post传输数据量(max-post-size)的问题
- checkbox全选与反选/第二次全选无效,改attr为prop
- 在Linux(CentOS)中安装was8.5的详细过程
- 元素想填满ScrollView时
- 关于PIXI引擎制作页面小游戏的几个总结
- recyclerview
- uboot整体介绍