分区表分区字段的update操作

默认情况下,oracle的分区表对于分区字段是不允许进行update操作的,如果有对分区字段行进update,就会报错——ORA-14402: 更新分区关键字列将导致分区的更改。但是可以通过打开表的row movement属性来允许对分区字段的update操作。

例:创建分区表test_part进行实验

create table TEST_PART
(
  A1 NUMBERnot null,
  A2 DATE      not null,
  A3 VARCHAR2(6) not null,
  A4 DATE not null,
  A5 NUMBER not null,
)
partition by range (A1)
(
  partition P1 values less than (1000),
  partition P2 values less than (2000),
  partition P3 values less than (3000),
  partition P4 values less than (4000),
  partition P5 values less than (5000),
  partition P6 values less than (MAXVALUE)
);

插入如下的数据
SQL> select * from test_part;

        A1 A2          A3     A4                  A5
---------- ----------- ------ ----------- ----------
       123 2006-06-30  123456 2006-06-30         123
       456 2006-06-30  asdfgh 2006-06-30         456
         1 2006-06-30  234123 2006-06-30           1
         2 2006-06-30  234234 2006-06-30           2
      1234 2006-06-30  456789 2006-06-30        1234
      1111 2006-06-30  ewrqwe 2006-06-30        1111
      2222 2006-06-30  fdafda 2006-06-30        2222
      3333 2006-06-30  342342 2006-06-30        3333
      5678 2006-06-30  qwerty 2006-06-30        5678

9 rows selected

分区P1、P2的数据分别为:
SQL> select rowid,t.* from test_part partition(p1) t;

ROWID                      A1 A2          A3     A4                  A5
------------------ ---------- ----------- ------ ----------- ----------
AAAGLoAAGAAAtsEAAB        456 2006-06-30  asdfgh 2006-06-30         456
AAAGLoAAGAAAtsEAAC          1 2006-06-30  234123 2006-06-30           1
AAAGLoAAGAAAtsEAAD          2 2006-06-30  234234 2006-06-30           2
AAAGLoAAGAAAtsEAAE        123 2006-06-30  123456 2006-06-30         123

SQL> select rowid,t.* from test_part partition(p2) t;

ROWID                      A1 A2          A3     A4                  A5
------------------ ---------- ----------- ------ ----------- ----------
AAAGLwAAGAAA+8MAAC       1234 2006-06-30  456789 2006-06-30        1234
AAAGLwAAGAAA+8MAAD       1111 2006-06-30  ewrqwe 2006-06-30        1111

直接update提示错误
SQL> update test_part set a1=1123 where a1=123;

update test_part set a1=1123 where a1=123

ORA-14402: 更新分区关键字列将导致分区的更改

打开row movement属性
SQL> alter table test_part enable row movement;

Table altered

再次执行update操作
SQL> update test_part set a1=1123 where a1=123;

1 row updated

执行是成功的并迁移到分区P2上了,且这时候rowid也发生了变化
SQL> select rowid,t.* from test_part partition(p2) t;

ROWID                      A1 A2          A3     A4                  A5
------------------ ---------- ----------- ------ ----------- ----------
AAAGLwAAGAAA+8MAAC       1234 2006-06-30  456789 2006-06-30        1234
AAAGLwAAGAAA+8MAAD       1111 2006-06-30  ewrqwe 2006-06-30        1111
AAAGLwAAGAAA+8PAAB       1123 2006-06-30  123456 2006-06-30         123

SQL> 

enable row movement可以允许数据段的压缩、update分区字段的数据(跨分区的)

但是,也是有限制性的:对于普通表(heap-organized)行迁移后rowid会发生变化,对于索引表(index-organized)rowid虽然依然有效,但是其实际对应的物理构成是错误的。

转载于:https://www.cnblogs.com/yifan268/archive/2008/06/14/1221114.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OCP-052考试题库汇总(38)-CUUG内部解答版

You want to audit update statements that refer to USER1.DEPT.DNAME. Which type of auditing must you use? A)standard auditing B)mandatory auditing C)value-based auditing D)fine-grained auditing Answer: D 赵: Fine-Grained Audit(FGA),精…

C++_练习—多态_纯虚函数与抽象类

纯虚函数与抽象类 含有纯虚函数的类&#xff0c;称为抽象基类&#xff0c;不可实列化。即不能创建对象&#xff0c;存在的意义就是被继承&#xff0c;提供族类的公共接口。 1 // 纯虚函数与抽象类2 3 #include <iostream>4 5 using namespace std;6 7 class shape {8 pub…

深入理解Linux内存映射机制

Author: wztEMail: [email]wztxsec.org[/email]Site: [url]http://www.xsec.org[/url]Date: 2008-6-13一. 绪 论二. X86的硬件寻址方法三. 内核对页表的设置四. 实例分析映射机制一. 绪 论我们经常在程序的反汇编代码中看到一些类似0x32118965这样的地址&#xff0c;操作系统中…

NetCore的配置管理(1)

学习NetCore的配置管理&#xff1b; 目录 命令行配置Json文件配置配置文件文本至C#对象实例的映射配置文件热更新总结命令行配置&#xff1a; 打开VS2017,新建NetCore控制台项目&#xff1b; 打开nuget包管理&#xff1b;添加Microsoft.Asp.NetCore.all&#xff0c;或者使用命令…

buffer busy waits

buffer busy waitshttp://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_idNOT&p_id34405.1当会话想要访问缓冲存储器中的数据块&#xff0c;而该数据块正在被其它会话使用时产生buffer busywaits事件。其它会话可能正在从数据文件向缓冲区存…

推荐几个EDA网站

http://www.cnblogs.com/jianyungsun/archive/2011/05/12/2044898.html 1. OPENCORES.ORG 这里提供非常多&#xff0c;非常好的PLD了内核&#xff0c;8051内核就可以在里面找到。 进入后&#xff0c;选择project或者由http//www.opencores.org/browse.cgi/by_category进入。 h…

SetupFactory安装制作心得

很多年前&#xff0c;因为仰慕Install Shield的鼎鼎大名&#xff0c;所以很是花了些功夫研究了一番&#xff0c;最后&#xff0c;基本上也可以打出很完善的包了&#xff0c;其中也不乏一些很有难度的事情&#xff0c;比如ODBC的打包等。但它实在太难用了&#xff0c;过上一段时…

Timus 1114. Boxes

Timus 1114. Boxes 要求计算出将两种颜色的球放到盒子中的各种组合的数目。1114. Boxes Time Limit: 0.6 second Memory Limit: 16 MB N boxes are lined up in a sequence (1 ≤ N ≤ 20). You have A red balls and B blue balls (0 ≤ A ≤ 15, 0 ≤ B ≤ 15). The red bal…

写作知识点

1.逻辑框架 2.起承转合 3.写作套路 4.述说,正述,倒序, 先说结果,分析原因,解决方案,,方案检查,紧急预案,预期结果 转载于:https://www.cnblogs.com/zeenzhou/p/11388739.html

Speerio Skinergy 'Image' is ambiguous 错误

使用BeyondCSS皮肤时报错&#xff1a;Could Not Load Skin: /Portals/0/Skins/beyondcss/1column_speerio.ascx Error: E:"Development"DotNetNuke"InstallArea"DotNetNuke_04.08.03_Source"Website"controls"Speerio"Skinergy"s…

Sql Server中自动序号的方法

第一种:使用identity函数增加临时表的方法 selectid identity(int,1,1),*into#tmp fromtableselect*from#tmp droptable#tmp 在SQL2005中新增了ROW_NUMBER()函数,给我们带来了很多方便,使用方法如下: SELECTid,ROW_NUMBER() OVER(orderbyid)asRowNumber FROMTable有一个方便,as…

js- 对象 toString 的结果 [ object Object ]

alert({ }); 输出 [ object Object ] 除了null和undefined之外&#xff0c;其他的类型(数值、布尔、字符串、对象)都有toString()方法&#xff0c;它返回相应值的字符串表现(并不修改原变量)。每个对象都有一个toString()方法。当该对象被表示为一个文本值时&#xff0c;或者一…

flex白板之图形绘制函数

图形的绘制 Graphics类提供了相关的方法&#xff1a; 1&#xff0c;清空画布 graphics.clear();2&#xff0c;设置画笔 graphics.lineStyle(thickness:Number NaN, color:uint 0, alpha:Number 1.0, pixelHinting:Boolean false, scaleMode:String "normal", ca…

程序员的工具箱奇形怪状

Snipaste 有道词典window客户端 转载于:https://www.cnblogs.com/ww01/p/11393340.html

请汇编高手注释的CompareText

这段代码是将两个字符串对象进行比较&#xff0c;忽略大小写&#xff0c;两个字符串缓冲区地址利用EAX和EDX两个寄存器传给该函数&#xff0c;字符串的长度用4个字节保存在缓冲区的前面&#xff0c;函数用EAX返回比较结果&#xff0c;结果为0表示相同。function CompareText(co…

俱乐部又多了一个MVP

山西DotNet俱乐部的周金桥同志成为2008年7月份的MVP&#xff0c;在这里祝贺一下。

交朋友的学问

交朋友这个事情是这样的&#xff0c; 咱们自己确实得努力&#xff0c; 否则有点水平的就不会倾向于和咱们建立关系。 不是别人骄傲&#xff0c; 而是如果交一大堆朋友&#xff0c; 用于交流的时间又有限&#xff0c; 到时候反而不知如何处理&#xff0c;得罪哪一个也行不是。过…

MathCAD求解方程组

用MathCAD解方程组&#xff0c;经常因为的原因出错&#xff0c;所以留在这里自己看&#xff0c;也供大家参考。 转自&#xff1a;http://www.cscce.net/fsp/reeducation/mathcad.html (九) 解方程与方程组 1&#xff0e;解一元一次方程 root函数格式&#xff1a;root(f(x),x…

计算机启动过程详解

打开电源启动机器几乎是电脑爱好者每天必做的事情&#xff0c;面对屏幕上出现的一幅幅启动画面&#xff0c;我们一点儿也不会感到陌生&#xff0c;但是&#xff0c;计算机在显示这些启动画面时都做了些什么工作呢&#xff1f;相信有的朋友还不是很清楚&#xff0c;本文就来介绍…

extern C

extern "C" LuChenQun edited this page Mar 30, 2019 3 revisions在C中常在头文件见到extern "C"修饰函数&#xff0c;那有什么作用呢&#xff1f; 是用于C链接在C语言模块中定义的函数。 C虽然兼容C&#xff0c;但C文件中函数编译后生成的符号与C语言生…