ORA-14108 is a common error faced by Oracle DBAs while working with partitioned tables. It occurs when adding a partition with a boundary value that violates Oracle's strict partition ordering rules.
ORA-14108: partition bound must collate higher than that of the last partition
Step 1: Create Partitioned Table
Let’s create a sample range-partitioned table:
SQL> CREATE TABLE sales_data (id NUMBER,sale_date DATE)
PARTITION BY RANGE (sale_date)
( PARTITION p2024 VALUES LESS THAN (DATE '2024-01-01'),
PARTITION p2025 VALUES LESS THAN (DATE '2025-01-01') );
Table created.
Step 2: Verify Existing Partitions
SQL> SELECT partition_name, high_value FROM dba_tab_partitions WHERE
table_name = 'SALES_DATA' ORDER BY partition_position;
PARTITION_NAME HIGH_VALUE
---------------- ----------------------------------------
P2024 TO_DATE('2024-01-01','YYYY-MM-DD')
P2025 TO_DATE('2025-01-01','YYYY-MM-DD')
Last partition boundary = 2025-01-01
Step 3: Attempt to Add Incorrect Partition
Now try to add a partition with lower boundary:
SQL> ALTER TABLE sales_data ADD PARTITION p2023 VALUES LESS THAN (DATE '2023-01-01');
ALTER TABLE sales_data
*
ERROR at line 1:
ORA-14108: partition bound must collate higher than that of the last partition
Why This Error Occurs
- Existing last partition → 2025
- New partition → 2023 (lower)
- Oracle does not allow backward partition creation
Partition values must always be added in ascending order.
Solution 1: Add Correct Partition
SQL> ALTER TABLE sales_data ADD PARTITION p2026 VALUES LESS THAN (DATE '2026-01-01');
Table altered.
Verify Again
SQL> SELECT partition_name, high_value FROM dba_tab_partitions WHERE
table_name = 'SALES_DATA' ORDER BY partition_position;
PARTITION_NAME HIGH_VALUE
---------------- ----------------------------------------
P2024 TO_DATE('2024-01-01','YYYY-MM-DD')
P2025 TO_DATE('2025-01-01','YYYY-MM-DD')
P2026 TO_DATE('2026-01-01','YYYY-MM-DD')
Solution 2: Use SPLIT PARTITION (Insert Between)
If you need a partition between existing ones:
SQL> ALTER TABLE sales_data SPLIT PARTITION p2025 AT (DATE '2024-06-01')
INTO ( PARTITION p2024_mid, PARTITION p2025 );
Table altered.
Verify After Split
SQL> SELECT partition_name, high_value FROM dba_tab_partitions WHERE
table_name = 'SALES_DATA' ORDER BY partition_position;
PARTITION_NAME HIGH_VALUE
---------------- ----------------------------------------
P2024 TO_DATE('2024-01-01','YYYY-MM-DD')
P2024_MID TO_DATE('2024-06-01','YYYY-MM-DD')
P2025 TO_DATE('2025-01-01','YYYY-MM-DD')
P2026 TO_DATE('2026-01-01','YYYY-MM-DD')
SPLIT PARTITION is the correct way to insert partitions between existing ranges.
In production, this error usually occurs when:
- Automation scripts create partitions in wrong order
- Backdated partitions are added manually
- Data migration scripts are not validated
Best Practices
- Always check last partition boundary before ADD
- Use SPLIT for mid-range partitions
- Automate partition creation carefully
- Validate using DBA_TAB_PARTITIONS
ORA-14108 occurs due to incorrect partition ordering.
New partition must be higher than last partition.
Use SPLIT PARTITION to insert between partitions.
Proper planning avoids production issues.
ORA-14108 is a simple but critical error in Oracle partition management. Understanding partition ordering rules and using the correct approach ensures stable and efficient database operations.
Toufique Khan
