今天表里一条数据的时间是0110-11-23 12:00:44 该条数据来源是别的系统给的,bug出来的原因是js在不同浏览器下取时间的问题。正确的时间应该是2010-11-23 12:00:44,当把要这条数据改正确时,执行
update cpa_details cp set cp.action_time = to_date('2010-11-23 12:04:14','yyyy-mm-dd hh24:mi:ss')
where cp.id = 34817报ORA-14402: 更新分区关键字列将导致分区的更改错误,导致更新不成功。
上网查了资料可以通过打开表的row movement属性来允许对分区字段的update操作。
alter table CPA_DETAILS enable row movement;
再执行update语句即可。
警告:enable row movement可以允许数据段的压缩、update分区字段的数据(跨分区的)
但是,也是有限制性的:对于普通表(heap-organized)行迁移后rowid会发生变化,对于索引表(index-organized)rowid虽然依然有效,但是其实际对应的物理构成是错误的。