ORA-14402处理,关于分区字段的修改

        今天在生产上执行一个update,报出ORA-14402: updating partition key column would cause a partition change。原因是修改分区字段所引起的。

update schema.table_name
   set time_a = time_b
 where code_a = xxxxxxxxxxxxxxxx
   and status = xxx
   and to_char(time_a, 'dd') != to_char(time_b, 'dd')
   and time_a > to_date('2010-06-01', 'yyyy-mm-dd');

        1.仔细的看了看该表,是以time_a 为分区字段,5天一个分区。而update的语句中有将6号的时间改为5号的日期的情况。

        2.然后查询一下生产的row movement策略
        select table_name,owner,row_movement from dba_tables where table_name = 'table_name';
        的确是disabled的状态

        3.修改该策略
        alter table schema.table_name enable row movement;

        4.执行语句

        5..修改回来
        alter table schema.table_name disable row movement;

        搞完收工

        另:其实这个不是万全之策,如果偶尔的修改没有问题;如果要经常修改,则说明该表设计的不好,分区字段一般是不能用于修改的。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11258275/viewspace-666497/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11258275/viewspace-666497/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值