创建list-range的分区表的代码如下:
create table uu
(USER_ID NUMBER(10), TXN_DATE DATE) TABLESPACE FLOW
PARTITION BY LIST(USER_ID)
SUBPARTITION BY RANGE(TXN_DATE)
(
PARTITION UUP0 VALUES (0)
(
SUBPARTITION UUPOS20000101 VALUES LESS THAN (TO_DATE('2000-01-01','yyyy-mm-dd'))
)
);
我用代码 ALTER TABLE uu MODIFY PARTITION UUP0 ADD SUBPARTITION UUP0S201091 VALUES LESS THAN (TO_DATE('2010-9-1', 'yyyy-mm-dd')) TABLESPACE flow 可以成功的在分区UUP0下添加子分区。我用代码ALTER TABLE uu ADD PARTITION UUP6 VALUES (6) TABLESPACE flow能够成功的添加分区UUP6,但用代码ALTER TABLE uu MODIFY PARTITION UUP6 ADD SUBPARTITION UUP6S201091 VALUES LESS THAN (TO_DATE('2010-9-1', 'yyyy-mm-dd')) TABLESPACE flow在分区UUP6下添加子分区时出现奇怪的现象:(1) 有出错提示,在pl/sql下的错误提示是ORA-14049: 无效的 ALTER TABLE MODIFY PARTITION 选项,在sql*plus下的错误提示是ORA-14211: 子分区界限必须调整为高于最后一个子分区界限。(2) 虽然有错误提示,但在分区UUP6下已经添加了一个分区,但其分区名并不是我指定的子分区名字。继续用代码ALTER TABLE uu MODIFY PARTITION UUP6 ADD SUBPARTITION UUP6S201098 VALUES LESS THAN (TO_DATE('2010-9-8', 'yyyy-mm-dd')) TABLESPACE flow在分区UUP6添加子分区,错误提示是ORA-14211: 子分区界限必须调整为高于最后一个子分区界限,而且在分区UUP6下也没有添加子分区。
有哪位大哥能够帮我解决一下,非常感谢
create table uu
(USER_ID NUMBER(10), TXN_DATE DATE) TABLESPACE FLOW
PARTITION BY LIST(USER_ID)
SUBPARTITION BY RANGE(TXN_DATE)
(
PARTITION UUP0 VALUES (0)
(
SUBPARTITION UUPOS20000101 VALUES LESS THAN (TO_DATE('2000-01-01','yyyy-mm-dd'))
)
);
我用代码 ALTER TABLE uu MODIFY PARTITION UUP0 ADD SUBPARTITION UUP0S201091 VALUES LESS THAN (TO_DATE('2010-9-1', 'yyyy-mm-dd')) TABLESPACE flow 可以成功的在分区UUP0下添加子分区。我用代码ALTER TABLE uu ADD PARTITION UUP6 VALUES (6) TABLESPACE flow能够成功的添加分区UUP6,但用代码ALTER TABLE uu MODIFY PARTITION UUP6 ADD SUBPARTITION UUP6S201091 VALUES LESS THAN (TO_DATE('2010-9-1', 'yyyy-mm-dd')) TABLESPACE flow在分区UUP6下添加子分区时出现奇怪的现象:(1) 有出错提示,在pl/sql下的错误提示是ORA-14049: 无效的 ALTER TABLE MODIFY PARTITION 选项,在sql*plus下的错误提示是ORA-14211: 子分区界限必须调整为高于最后一个子分区界限。(2) 虽然有错误提示,但在分区UUP6下已经添加了一个分区,但其分区名并不是我指定的子分区名字。继续用代码ALTER TABLE uu MODIFY PARTITION UUP6 ADD SUBPARTITION UUP6S201098 VALUES LESS THAN (TO_DATE('2010-9-8', 'yyyy-mm-dd')) TABLESPACE flow在分区UUP6添加子分区,错误提示是ORA-14211: 子分区界限必须调整为高于最后一个子分区界限,而且在分区UUP6下也没有添加子分区。
有哪位大哥能够帮我解决一下,非常感谢
解决方案 »
- ora-00902:无效数据类型
- 查询出一个表比另外一个表多出的记录
- 我就纳闷了,procedure咋就不能测试呢
- 请问可以在WINDOWS平台上管理UNIX上的ORACLE数据库服务端吗?
- Oracle中的SQL,得到表中前10条记录怎么写?谢谢![在线等待]
- oracle9i中文乱码问题,用sqlplus worksheet的insert中文字符时,乱码
- 请问:存储过程的参数是否可以为结构或数组
- linux 如何启动oracle的图形管理工具?
- truncate table report;这条语句在存储过程中怎么过不去,急!
- ER图的表示方法
- 请高手帮忙写个oracle语句
- 如何用btree 和 bitmap 来做统计
alter table uu add partition uup6 values(6) (subpartition UUP6S201091 values less than (TO_DATE('2010-9-1', 'yyyy-mm-dd')));
为什么你先建list分区再建range子分区会报错呢?原因在于当你执行ALTER TABLE uu ADD PARTITION UUP6 VALUES (6) TABLESPACE flow这个语句后 由于你没有指定具体的子分区,oracle就自动帮你建了,而且分区范围应该是oracle能接受的最高上限(我个人理解),所以你执行建range子分区ALTER TABLE uu MODIFY PARTITION UUP6 ADD SUBPARTITION UUP6S201091 VALUES LESS THAN (TO_DATE('2010-9-1', 'yyyy-mm-dd')) TABLESPACE flow时报ORA-14211错.
可以通过查看all_tab_subpartition这个视图 找到系统自建的子分区,再通过命令drop掉就可以了啊