oracle 开关行,怎么启用行移动功能???

SQL> CREATE TABLE T_NEW (ID NUMBER PRIMARY KEY, TIME DATE) PARTITION BY RANGE (TIME)

(

2    3  PARTITION P1 VALUES LESS THAN (TO_DATE('2007-01-01', 'YYYY-MM-DD')),

4  PARTITION P2 VALUES LESS THAN (TO_DATE('2008-01-01', 'YYYY-MM-DD')),

5  PARTITION P3 VALUES LESS THAN (MAXVALUE));

Table created.

SQL> insert into t_new values(1,TO_DATE('2006-11-01', 'YYYY-MM-DD'));

insert into t_new values(2,TO_DATE('2007-01-01', 'YYYY-MM-DD'));

insert into t_new values(3,TO_DATE('2007-12-01', 'YYYY-MM-DD'));

commit;

SQL> select * from t_new partition(p1);

ID TIME

---------- ------------

1 01-NOV-06

SQL> select * from t_new partition(p2);

ID TIME

---------- ------------

2 01-JAN-07

3 01-DEC-07

SQL> select * from t_new partition(p3);

no rows selected

SQL> update t_new set time=TO_DATE('2008-02-05', 'YYYY-MM-DD') where id=1;

update t_new set time=TO_DATE('2008-02-05', 'YYYY-MM-DD') where id=1

*

ERROR at line 1:

ORA-14402: updating partition key column would cause a partition change

SQL> !oerr ora 14402

14402, 00000, "updating partition key column would cause a partition change"

// *Cause:  An UPDATE statement attempted to change the value of a partition

//          key column causing migration of the row to another partition

// *Action: Do not attempt to update a partition key column or make sure that

//          the new partition key is within the range containing the old

//          partition key.

SQL> alter table t_new enable row movement

Table altered.

SQL> update t_new set time=TO_DATE('2008-02-05', 'YYYY-MM-DD') where id=1;

1 row updated.

SQL> commit;

Commit complete.

SQL> select * from t_new partition(p1);

no rows selected

SQL> select * from t_new partition(p2);

ID TIME

---------- ------------

2 01-JAN-07

3 01-DEC-07

SQL> select * from t_new partition(p3);

ID TIME

---------- ------------

1 05-FEB-08

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值