ORA-14074:パーティションのバインドは、最後のパーティションのバインドよりも高く照合する必要があります



Ora 14074 Partition Bound Must Collate Higher Than That Last Partition



1.パーティションテーブルを作成します

create table zhanglei_test (c1 number, c2 varchar2(10)) partition by range(c1) (partition p10 values less than (10), partition p20 values less than (20), partition p30 values less than (30), partition pmax values less than (maxvalue) )

2.インデックスを作成します



alter table zhanglei_test add constraint PK_test primary key (c1)

3.レコードを挿入します

insert into zhanglei_test (c1,c2) values (1,'hello') insert into zhanglei_test (c1,c2) values (2,'hello') insert into zhanglei_test (c1,c2) values (3,'hello') insert into zhanglei_test (c1,c2) values (4,'hello') insert into zhanglei_test (c1,c2) values (5,'hello') insert into zhanglei_test (c1,c2) values (6,'hello') insert into zhanglei_test (c1,c2) values (7,'hello') insert into zhanglei_test (c1,c2) values (8,'hello') insert into zhanglei_test (c1,c2) values (9,'hello') insert into zhanglei_test (c1,c2) values (10,'hello') insert into zhanglei_test (c1,c2) values (11,'hello') insert into zhanglei_test (c1,c2) values (12,'hello') ...... insert into zhanglei_test (c1,c2) values (33,'hello') insert into zhanglei_test (c1,c2) values (34,'hello') insert into zhanglei_test (c1,c2) values (35,'hello') insert into zhanglei_test (c1,c2) values (36,'hello') insert into zhanglei_test (c1,c2) values (37,'hello') insert into zhanglei_test (c1,c2) values (38,'hello') insert into zhanglei_test (c1,c2) values (39,'hello') insert into zhanglei_test (c1,c2) values (40,'hello')

4.インデックスステータスを表示します



select * from user_indexes where table_name in ('ZHANGLEI_TEST') --valid SELECT * FROM USER_TAB_PARTITIONS WHERE TABle_name in ('ZHANGLEI_TEST')



5.パーティションを展開し、エラーORA-14074を報告します。

ALTER TABLE ZHANGLEI_TEST ADD PARTITION P40 VALUES LESS THAN (40)


1行目のエラー。
ORA-14074:パーティションのバインドは、最後のパーティションのバインドよりも高く照合する必要があります
ORA-14074:パーティション境界は、最後のパーティション境界よりも高くなるように調整する必要があります。


6. 2つの治療法:
a。スプリットパーティション



ALTER TABLE ZHANGLEI_TEST SPLIT PARTITION pmax AT (60) INTO (PARTITION P60, PARTITION PMAX) UPDATE GLOBAL INDEXES ALTER TABLE ZHANGLEI_TEST SPLIT PARTITION pmax AT (70) INTO (PARTITION P70, PARTITION PMAX) UPDATE GLOBAL INDEXES ALTER TABLE ZHANGLEI_TEST SPLIT PARTITION pmax AT (80) INTO (PARTITION P80, PARTITION PMAX) UPDATE GLOBAL INDEXES ALTER TABLE ZHANGLEI_TEST SPLIT PARTITION pmax AT (90) INTO (PARTITION P90, PARTITION PMAX) UPDATE GLOBAL INDEXES ALTER TABLE ZHANGLEI_TEST SPLIT PARTITION pmax AT (100) INTO (PARTITION P100, PARTITION PMAX) UPDATE GLOBAL INDEXES ALTER TABLE ZHANGLEI_TEST SPLIT PARTITION pmax AT (110) INTO (PARTITION P110, PARTITION PMAX) UPDATE GLOBAL INDEXES

b。パーティションを追加

ALTER TABLE ZHANGLEI_TEST DROP PARTITION 'PMAX' UPDATE GLOBAL INDEXES ALTER TABLE ZHANGLEI_TEST ADD PARTITION 'P100' VALUES LESS THAN (100) ALTER TABLE ZHANGLEI_TEST ADD PARTITION 'PMAX' VALUES LESS THAN (MAXVALUE)



注:maxvalueだけでなく、パーティションの追加値の値が現在のパーティションの値よりも小さい限り、同じエラーが報告されます。