ITPUB论坛 » Oracle新技术/11g » ora-14758错误


2008-7-5 00:24 wanmoxiaosheng
ora-14758错误

在学习间隔分区用法时,我使用alter table drop partition语句删除一个分区时,报ORA-14758:不能删除范围段中的最后一个分区。

      请问如何解决?

      间隔分区中分区数量不断增加,该如何实现分区的删除?

2008-7-7 01:47 cc59
是的,对于自动增加的分区你可以drop分区.

但是对于手动添加的最后一个分区在drop的时候分报错.

bug:6648894

2008-7-7 01:49 cc59
test case

SQL> create table test_par
  2      ( id number,
  3        td  date
  4      )
  5      partition by range(td)
  6      interval (numtoyminterval(1,'month'))
  7      store in (users,test)
  8      (partition p1
  9      values less than(to_date('2008-05-01','yyyy-mm-dd')) tablespace users,
10       partition p2
11      values less than(to_date('2008-06-01','yyyy-mm-dd')) tablespace test,
12       partition p3
13       values less than(to_date('2008-07-01','yyyy-mm-dd')) tablespace users

14       partition p4
15       values less than(to_date('2008-08-01','yyyy-mm-dd')) tablespace test
16      );

表已创建。

SQL> insert into test_par values(1,to_date('2008-08-20','yyyy-mm-dd'));

已创建 1 行。

SQL> insert into test_par values(1,to_date('2008-09-20','yyyy-mm-dd'));

已创建 1 行。

SQL> insert into test_par values(1,to_date('2008-10-20','yyyy-mm-dd'));

已创建 1 行。

SQL> commit;

提交完成。

SQL>
SQL> select partition_name,tablespace_name,high_value
  2    from dba_tab_partitions
  3   where table_name='TEST_PAR'
  4  order by partition_position;

PARTITION_ TABLESPACE HIGH_VALUE
---------- ---------- ------------------------------------------------------------
P1         USERS      TO_DATE(' 2008-05-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
                      LS_CALENDAR=GREGORIAN')

P2         TEST       TO_DATE(' 2008-06-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
                      LS_CALENDAR=GREGORIAN')

P3         USERS      TO_DATE(' 2008-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
                      LS_CALENDAR=GREGORIAN')

P4         TEST       TO_DATE(' 2008-08-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
                      LS_CALENDAR=GREGORIAN')

PARTITION_ TABLESPACE HIGH_VALUE
---------- ---------- ------------------------------------------------------------

SYS_P61    USERS      TO_DATE(' 2008-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
                      LS_CALENDAR=GREGORIAN')

SYS_P62    TEST       TO_DATE(' 2008-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
                      LS_CALENDAR=GREGORIAN')

SYS_P63    USERS      TO_DATE(' 2008-11-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
                      LS_CALENDAR=GREGORIAN')


已选择7行。

SQL> alter table test_par drop partition sys_p63;

表已更改。
SQL> alter table test_par drop partition p1;

表已更改。

SQL> alter table test_par drop partition p2;

表已更改。

SQL> alter table test_par drop partition p4;
alter table test_par drop partition p4
                                    *
ERROR 位于第 1 行:
ORA-14758: 不能删除范围段中的最后一个分区

页: [1]
查看完整版本: ora-14758错误


Powered by ITPUB论坛