If you work with Oracle partitioned tables, you may come across the ORA-14400 error, which reads:
ORA-14400: inserted partition key does not map to any partition
This error can be confusing, especially if you’re inserting what appears to be valid data. Let’s break down what this error means, why it happens, and how you can resolve it.
What Does ORA-14400 Mean?
The error ORA-14400 occurs when you’re inserting or updating a row in a partitioned table, but the value for the partition key doesn’t match any of the defined partitions in that table.

In simpler terms: you’re trying to place data in a storage box that doesn’t exist.
Why Does This Error Occur?
Partitioned tables are broken into logical pieces, called partitions, based on rules you define—commonly by range (like dates) or list (like region names).
Here are common reasons why ORA-14400 might occur:
1. Range Partitioning
You defined partitions for a date column only up to '31-DEC-2024'
. Now, you’re trying to insert a row with a date like '01-JAN-2025'
, but there’s no partition to handle that.
2. List Partitioning
Your partitions only allow regions 'North'
, 'South'
, 'East'
, and 'West'
. Trying to insert 'Central'
will cause ORA-14400, because 'Central'
isn’t assigned to any partition.
How to Fix ORA-14400
Depending on your situation, here are a few ways to solve it:
1. Add a New Partition
If the data is valid and expected, you may simply need to expand your table’s partitions.
Example:
ALTER TABLE sales_data
ADD PARTITION p_apr2025 VALUES LESS THAN (TO_DATE('01-MAY-2025', 'DD-MON-YYYY'));
This will allow inserting rows with dates in April 2025.
2. Use a Default Partition (MAXVALUE)
For range partitions, adding a MAXVALUE
catch-all partition can help:
ALTER TABLE sales_data
ADD PARTITION p_future VALUES LESS THAN (MAXVALUE);
Now, any future dates beyond your current highest range will go into this partition.
3. Validate Data Before Insert
Make sure your data fits within the range or list values defined in your table’s partitioning scheme. You can run checks before inserting:
SELECT * FROM new_data
WHERE sales_date > TO_DATE('31-DEC-2024', 'DD-MON-YYYY');
This helps catch rows that could trigger ORA-14400.
Example Scenario
Let’s say you have a partitioned table:
CREATE TABLE sales_data (
sale_id NUMBER,
sale_date DATE,
amount NUMBER
)
PARTITION BY RANGE (sale_date) (
PARTITION p_2024_q1 VALUES LESS THAN (TO_DATE('01-APR-2024', 'DD-MON-YYYY')),
PARTITION p_2024_q2 VALUES LESS THAN (TO_DATE('01-JUL-2024', 'DD-MON-YYYY')),
PARTITION p_2024_q3 VALUES LESS THAN (TO_DATE('01-OCT-2024', 'DD-MON-YYYY')),
PARTITION p_2024_q4 VALUES LESS THAN (TO_DATE('01-JAN-2025', 'DD-MON-YYYY'))
);
If you try to insert:
INSERT INTO sales_data VALUES (101, TO_DATE('15-JAN-2025', 'DD-MON-YYYY'), 5000);
It will fail with ORA-14400 because there is no partition for 2025.
To fix this:
ALTER TABLE sales_data
ADD PARTITION p_2025_q1 VALUES LESS THAN (TO_DATE('01-APR-2025', 'DD-MON-YYYY'));
Now the insert will work.
Final Thoughts
ORA-14400 is a partition mapping error, and while it may seem tricky at first, it’s usually caused by:
- Missing partitions for your incoming data
- Incorrect values not matching any existing list/range
- Outdated partition design
By planning your partitioning strategy carefully and using MAXVALUE
or default list partitions where appropriate, you can prevent this error from appearing in the future.