HIREADATE 是字符类型的
SQL> create table m partition by range(HIREDATE)
2 (
partition t1_198012 values less than(to_date('1981-01-01','yyyy-mm-dd')) tablespace test ,
partition t1_198101 values less than(to_date('1981-02-01','yyyy-mm-dd')) tablespace test1 ,
partition t1_198102 values less than(to_date('1981-03-01','yyyy-mm-dd')) tablespace test ,
partition t1_198103 values less than(to_date('1981-04-01','yyyy-mm-dd')) tablespace test1 ,
partition t1_198104 values less than(to_date('1981-05-01','yyyy-mm-dd')) tablespace test1 ,
partition t1_198105 values less than(to_date('1981-06-01','yyyy-mm-dd')) tablespace test ,
partition t1_198106 values less than(to_date('1981-07-01','yyyy-mm-dd')) tablespace test1 ,
partition t1_198107 values less than(to_date('1981-08-01','yyyy-mm-dd')) tablespace test ,
partition t1_198108 values less than(to_date('1981-09-01','yyyy-mm-dd')) tablespace test1 ,
partition t1_198109 values less than(to_date('1981-10-01','yyyy-mm-dd')) tablespace test ,
partition t1_198110 values less than(to_date('1981-11-01','yyyy-mm-dd')) tablespace test1 ,
partition t1_198111 values less than(to_date('1981-12-01','yyyy-mm-dd')) tablespace test ,
partition t1_198112 values less than(to_date('1982-01-01','yyyy-mm-dd')) tablespace test1 ,
partition t1_198201 values less than(to_date('1982-02-01','yyyy-mm-dd')) tablespace test ,
partition t1_198202 values less than(to_date('1982-03-01','yyyy-mm-dd')) tablespace test1 ,
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 partition t1_198203 values less than(to_date('1982-04-01','yyyy-mm-dd')) tablespace test ,
partition t1_198204 values less than(to_date('1982-05-01','yyyy-mm-dd')) tablespace test1 ,
partition t1_198205 values less than(to_date('1982-06-01','yyyy-mm-dd')) tablespace test ,
partition other values less than(maxvalue) tablespace test1
)
as
select * from t1 where 0=9; 19 20 21 22 23 24
partition t1_198012 values less than(to_date('1981-01-01','yyyy-mm-dd')) tablespace test ,
*
ERROR at line 3:
ORA-14037: partition bound of partition "T1_198012" is too high
最后发现,是因为日期的类型不一致
SQL> select sysdate from dual;
SYSDATE
---------
21-DEC-12
SQL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
最后修改了系统日期的类型后不在报错表也建成